IPAddress Class

 

Provides an Internet Protocol (IP) address.

Namespace:   System.Net
Assembly:  System (in System.dll)

System.Object
  System.Net.IPAddress

[SerializableAttribute]
public class IPAddress

NameDescription
System_CAPS_pubmethodIPAddress(Byte[])

Initializes a new instance of the IPAddress class with the address specified as a Byte array.

System_CAPS_pubmethodIPAddress(Byte[], Int64)

Initializes a new instance of the IPAddress class with the address specified as a Byte array and the specified scope identifier.

System_CAPS_pubmethodIPAddress(Int64)

Initializes a new instance of the IPAddress class with the address specified as an Int64.

NameDescription
System_CAPS_pubpropertyAddress

Obsolete. An Internet Protocol (IP) address.

System_CAPS_pubpropertyAddressFamily

Gets the address family of the IP address.

System_CAPS_pubpropertyIsIPv4MappedToIPv6

Gets whether the IP address is an IPv4-mapped IPv6 address.

System_CAPS_pubpropertyIsIPv6LinkLocal

Gets whether the address is an IPv6 link local address.

System_CAPS_pubpropertyIsIPv6Multicast

Gets whether the address is an IPv6 multicast global address.

System_CAPS_pubpropertyIsIPv6SiteLocal

Gets whether the address is an IPv6 site local address.

System_CAPS_pubpropertyIsIPv6Teredo

Gets whether the address is an IPv6 Teredo address.

System_CAPS_pubpropertyScopeId

Gets or sets the IPv6 address scope identifier.

NameDescription
System_CAPS_pubmethodEquals(Object)

Compares two IP addresses.(Overrides Object.Equals(Object).)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetAddressBytes()

Provides a copy of the IPAddress as an array of bytes.

System_CAPS_pubmethodGetHashCode()

Returns a hash value for an IP address.(Overrides Object.GetHashCode().)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodSystem_CAPS_staticHostToNetworkOrder(Int16)

Converts a short value from host byte order to network byte order.

System_CAPS_pubmethodSystem_CAPS_staticHostToNetworkOrder(Int32)

Converts an integer value from host byte order to network byte order.

System_CAPS_pubmethodSystem_CAPS_staticHostToNetworkOrder(Int64)

Converts a long value from host byte order to network byte order.

System_CAPS_pubmethodSystem_CAPS_staticIsLoopback(IPAddress)

Indicates whether the specified IP address is the loopback address.

System_CAPS_pubmethodMapToIPv4()

Maps the IPAddress object to an IPv4 address.

System_CAPS_pubmethodMapToIPv6()

Maps the IPAddress object to an IPv6 address.

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodSystem_CAPS_staticNetworkToHostOrder(Int16)

Converts a short value from network byte order to host byte order.

System_CAPS_pubmethodSystem_CAPS_staticNetworkToHostOrder(Int32)

Converts an integer value from network byte order to host byte order.

System_CAPS_pubmethodSystem_CAPS_staticNetworkToHostOrder(Int64)

Converts a long value from network byte order to host byte order.

System_CAPS_pubmethodSystem_CAPS_staticParse(String)

Converts an IP address string to an IPAddress instance.

System_CAPS_pubmethodToString()

Converts an Internet address to its standard notation.(Overrides Object.ToString().)

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, IPAddress)

Determines whether a string is a valid IP address.

NameDescription
System_CAPS_pubfieldSystem_CAPS_staticAny

Provides an IP address that indicates that the server must listen for client activity on all network interfaces. This field is read-only.

System_CAPS_pubfieldSystem_CAPS_staticBroadcast

Provides the IP broadcast address. This field is read-only.

System_CAPS_pubfieldSystem_CAPS_staticIPv6Any

The Socket.Bind method uses the IPv6Any field to indicate that a Socket must listen for client activity on all network interfaces.

System_CAPS_pubfieldSystem_CAPS_staticIPv6Loopback

Provides the IP loopback address. This property is read-only.

System_CAPS_pubfieldSystem_CAPS_staticIPv6None

Provides an IP address that indicates that no network interface should be used. This property is read-only.

System_CAPS_pubfieldSystem_CAPS_staticLoopback

Provides the IP loopback address. This field is read-only.

System_CAPS_pubfieldSystem_CAPS_staticNone

Provides an IP address that indicates that no network interface should be used. This field is read-only.

The IPAddress class contains the address of a computer on an IP network.

The following code example shows how to query a server to obtain the family addresses and the IP addresses it supports.


// This program shows how to use the IPAddress class to obtain a server 
// IP addressess and related information.

using System;
using System.Net;
using System.Net.Sockets;
using System.Text.RegularExpressions;

namespace Mssc.Services.ConnectionManagement
{

  class TestIPAddress 
  {

    /**
      * The IPAddresses method obtains the selected server IP address information.
      * It then displays the type of address family supported by the server and its 
      * IP address in standard and byte format.
      **/
    private static void IPAddresses(string server) 
    {
      try 
      {
        System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();

        // Get server related information.
        IPHostEntry heserver = Dns.GetHostEntry(server);

        // Loop on the AddressList
        foreach (IPAddress curAdd in heserver.AddressList) 
        {


          // Display the type of address family supported by the server. If the
          // server is IPv6-enabled this value is: InternNetworkV6. If the server
          // is also IPv4-enabled there will be an additional value of InterNetwork.
          Console.WriteLine("AddressFamily: " + curAdd.AddressFamily.ToString());

          // Display the ScopeId property in case of IPV6 addresses.
          if(curAdd.AddressFamily.ToString() == ProtocolFamily.InterNetworkV6.ToString())
            Console.WriteLine("Scope Id: " + curAdd.ScopeId.ToString());


          // Display the server IP address in the standard format. In 
          // IPv4 the format will be dotted-quad notation, in IPv6 it will be
          // in in colon-hexadecimal notation.
          Console.WriteLine("Address: " + curAdd.ToString());

          // Display the server IP address in byte format.
          Console.Write("AddressBytes: ");



          Byte[] bytes = curAdd.GetAddressBytes();
          for (int i = 0; i < bytes.Length; i++) 
          {
            Console.Write(bytes[i]);
          }                          

          Console.WriteLine("\r\n");

        }

      }
      catch (Exception e) 
      {
        Console.WriteLine("[DoResolve] Exception: " + e.ToString());
      }
    }

    // This IPAddressAdditionalInfo displays additional server address information.
    private static void IPAddressAdditionalInfo() 
    {
      try 
      {
        // Display the flags that show if the server supports IPv4 or IPv6
        // address schemas.
        Console.WriteLine("\r\nSupportsIPv4: " + Socket.SupportsIPv4);
        Console.WriteLine("SupportsIPv6: " + Socket.SupportsIPv6);

        if (Socket.SupportsIPv6)
        {
          // Display the server Any address. This IP address indicates that the server 
          // should listen for client activity on all network interfaces. 
          Console.WriteLine("\r\nIPv6Any: " + IPAddress.IPv6Any.ToString());

          // Display the server loopback address. 
          Console.WriteLine("IPv6Loopback: " + IPAddress.IPv6Loopback.ToString());

          // Used during autoconfiguration first phase.
          Console.WriteLine("IPv6None: " + IPAddress.IPv6None.ToString());

          Console.WriteLine("IsLoopback(IPv6Loopback): " + IPAddress.IsLoopback(IPAddress.IPv6Loopback));
        }
        Console.WriteLine("IsLoopback(Loopback): " + IPAddress.IsLoopback(IPAddress.Loopback));
      }
      catch (Exception e) 
      {
        Console.WriteLine("[IPAddresses] Exception: " + e.ToString());
      }
    }


    public static void Main(string[] args) 
    {
      string server = null;

      // Define a regular expression to parse user's input.
      // This is a security check. It allows only
      // alphanumeric input string between 2 to 40 character long.
      Regex rex = new Regex(@"^[a-zA-Z]\w{1,39}$");

      if (args.Length < 1)
      {
        // If no server name is passed as an argument to this program, use the current 
        // server name as default.
        server = Dns.GetHostName();
        Console.WriteLine("Using current host: " + server);
      }
      else
      {
        server = args[0];
        if (!(rex.Match(server)).Success)
        {
          Console.WriteLine("Input string format not allowed.");
          return;
        }
      }

      // Get the list of the addresses associated with the requested server.
      IPAddresses(server);

      // Get additonal address information.
      IPAddressAdditionalInfo();
    }

  }
}

Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: