IPAddress Class

 

Provides an Internet Protocol (IP) address.

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

System::Object
  System.Net::IPAddress

[SerializableAttribute]
public ref class IPAddress 

NameDescription
System_CAPS_pubmethodIPAddress(array<Byte>^)

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

System_CAPS_pubmethodIPAddress(array<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.dll>

using namespace System;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Text::RegularExpressions;

/**
* 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.
**/
void IPAddresses( String^ server )
{
   try
   {
      System::Text::ASCIIEncoding^ ASCII = gcnew System::Text::ASCIIEncoding;

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

      // Loop on the AddressList
      System::Collections::IEnumerator^ myEnum = heserver->AddressList->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         IPAddress^ curAdd = safe_cast<IPAddress^>(myEnum->Current);

         // 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: {0}", curAdd->AddressFamily );

         // Display the ScopeId property in case of IPV6 addresses.
         if ( curAdd->AddressFamily.ToString() == ProtocolFamily::InterNetworkV6.ToString() )
                  Console::WriteLine( "Scope Id: {0}", curAdd->ScopeId );

         // 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: {0}", curAdd );

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

         array<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: {0}", e );
   }

}


// This IPAddressAdditionalInfo displays additional server address information.
void IPAddressAdditionalInfo()
{
   try
   {
      // Display the flags that show if the server supports IPv4 or IPv6
      // address schemas.
      Console::WriteLine( "\r\nSupportsIPv4: {0}", Socket::SupportsIPv4 );
      Console::WriteLine( "SupportsIPv6: {0}", 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: {0}", IPAddress::IPv6Any );

         // Display the server loopback address. 
         Console::WriteLine( "IPv6Loopback: {0}", IPAddress::IPv6Loopback );

         // Used during autoconfiguration first phase.
         Console::WriteLine( "IPv6None: {0}", IPAddress::IPv6None );
         Console::WriteLine( "IsLoopback(IPv6Loopback): {0}", IPAddress::IsLoopback( IPAddress::IPv6Loopback ) );
      }
      Console::WriteLine( "IsLoopback(Loopback): {0}", IPAddress::IsLoopback( IPAddress::Loopback ) );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "[IPAddresses] Exception: {0}", e );
   }

}

int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   String^ server = nullptr;

   // 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 = gcnew Regex( "^[a-zA-Z]\\w{1,39}$" );
   if ( args->Length < 2 )
   {
      // 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: {0}", server );
   }
   else
   {
      server = args[ 1 ];
      if (  !(rex->Match(server))->Success )
      {
         Console::WriteLine( "Input string format not allowed." );
         return  -1;
      }
   }

   // 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: