IPAddress Class
.NET Framework 4.5
Provides an Internet Protocol (IP) address.
Namespace: System.Net
Assembly: System (in System.dll)
The IPAddress type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | IPAddress(Byte[]) | Initializes a new instance of the IPAddress class with the address specified as a Byte array. |
![]() | IPAddress(Int64) | Initializes a new instance of the IPAddress class with the address specified as an Int64. |
![]() | IPAddress(Byte[], Int64) | Initializes a new instance of the IPAddress class with the address specified as a Byte array and the specified scope identifier. |
| 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 | 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 | Gets the Type of the current instance. (Inherited from Object.) |
![]() ![]() | 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 | 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 | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() ![]() | 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 | Converts an IP address string to an IPAddress instance. |
![]() | ToString | Converts an Internet address to its standard notation. (Overrides Object.ToString().) |
![]() ![]() | TryParse | 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 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(); } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.




