C # How do I obtain the IPv4 address of the Local Machine ?,
C # obtain the local IP address. After C #1.0, use the following format:
IPHostEntry ipe = Dns.GetHostEntry(Dns.GetHostName());IPAddress ipa=ipe.AddressList[0];
AddressList is an IPAddress [] type. It stores all the system IP addresses, including IPv4 addresses, IPv6 addresses, and different network adapters.
IPv6 is enabled by default in Win7. The above code returns an IPv6 address, and according to the system situation, IPv4 cannot determine which subscript is stored in the array, for example, the Tunnel IP address will also be found. on my friend's machine, his subscript is 1, and on my machine, the IPv4 IP address is returned only when the subscript is 7.
The following code is used to obtain the IPv4 address of the local machine:
Public static string GetLocalIP () {try {string HostName = Dns. getHostName (); // obtain the host name IPHostEntry IpEntry = Dns. getHostEntry (HostName); for (int I = 0; I <IpEntry. addressList. length; I ++) {// filter IPv4 IP addresses from the IP address list // AddressFamily. interNetwork indicates that the IP address is IPv4, // AddressFamily. interNetworkV6 indicates that this address is of the IPv6 Type if (IpEntry. addressList [I]. addressFamily = AddressFamily. interNetwork) {return IpEntry. addressList [I]. toString () ;}} return "" ;}catch (Exception ex) {MessageBox. show ("An error occurred while obtaining the local IP Address:" + ex. message); return "";}}
This introduces the namespace
Using System. Net. Sockets;
Because the AddressFamily Enumeration type is in this namespace.