IPAddress Class
Provides an Internet Protocol (IP) address.
Assembly: System (in System.dll)
| Name | Description | |
|---|---|---|
![]() | IPAddress(array<Byte>^) | Initializes a new instance of the IPAddress class with the address specified as a Byte array. |
![]() | IPAddress(array<Byte>^, Int64) | Initializes a new instance of the IPAddress class with the address specified as a Byte array and the specified scope identifier. |
![]() | IPAddress(Int64) | Initializes a new instance of the IPAddress class with the address specified as an Int64. |
| Name | Description | |
|---|---|---|
![]() | Address | Obsolete. An Internet Protocol (IP) address. |
![]() | AddressFamily | Gets the address family of the IP address. |
![]() | IsIPv4MappedToIPv6 | Gets whether the IP address is an IPv4-mapped IPv6 address. |
![]() | IsIPv6LinkLocal | Gets whether the address is an IPv6 link local address. |
![]() | IsIPv6Multicast | Gets whether the address is an IPv6 multicast global address. |
![]() | IsIPv6SiteLocal | Gets whether the address is an IPv6 site local address. |
![]() | IsIPv6Teredo | Gets whether the address is an IPv6 Teredo address. |
![]() | ScopeId | Gets or sets the IPv6 address scope identifier. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Compares two IP addresses.(Overrides Object::Equals(Object^).) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetAddressBytes() | Provides a copy of the IPAddress as an array of bytes. |
![]() | GetHashCode() | Returns a hash value for an IP address.(Overrides Object::GetHashCode().) |
![]() | GetType() | |
![]() ![]() | HostToNetworkOrder(Int16) | Converts a short value from host byte order to network byte order. |
![]() ![]() | HostToNetworkOrder(Int32) | Converts an integer value from host byte order to network byte order. |
![]() ![]() | HostToNetworkOrder(Int64) | Converts a long value from host byte order to network byte order. |
![]() ![]() | IsLoopback(IPAddress^) | Indicates whether the specified IP address is the loopback address. |
![]() | MapToIPv4() | Maps the IPAddress object to an IPv4 address. |
![]() | MapToIPv6() | Maps the IPAddress object to an IPv6 address. |
![]() | MemberwiseClone() | |
![]() ![]() | NetworkToHostOrder(Int16) | Converts a short value from network byte order to host byte order. |
![]() ![]() | NetworkToHostOrder(Int32) | Converts an integer value from network byte order to host byte order. |
![]() ![]() | NetworkToHostOrder(Int64) | Converts a long value from network byte order to host byte order. |
![]() ![]() | Parse(String^) | Converts an IP address string to an IPAddress instance. |
![]() | ToString() | Converts an Internet address to its standard notation.(Overrides Object::ToString().) |
![]() ![]() | TryParse(String^, IPAddress^%) | Determines whether a string is a valid IP address. |
| Name | Description | |
|---|---|---|
![]() ![]() | Any | Provides an IP address that indicates that the server must listen for client activity on all network interfaces. This field is read-only. |
![]() ![]() | Broadcast | Provides the IP broadcast address. This field is read-only. |
![]() ![]() | IPv6Any | The Socket::Bind method uses the IPv6Any field to indicate that a Socket must listen for client activity on all network interfaces. |
![]() ![]() | IPv6Loopback | Provides the IP loopback address. This property is read-only. |
![]() ![]() | IPv6None | Provides an IP address that indicates that no network interface should be used. This property is read-only. |
![]() ![]() | Loopback | Provides the IP loopback address. This field is read-only. |
![]() ![]() | None | 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(); }
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.




