1 /// <summary> 2 /// 获取本机物理网卡的ip 3 /// </summary> 4 /// <returns></returns> 5 public static string IPAddress() 6 { 7 string userIP = ""; 8 System.Net.NetworkInformation.NetworkInterface[] fNetworkInterfaces = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(); 9 foreach (System.Net.NetworkInformation.NetworkInterface adapter in fNetworkInterfaces) 10 { 11 string fRegistryKey = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + adapter.Id + "\\Connection"; 12 Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(fRegistryKey, false); 13 if (rk != null) 14 { 15 // 区分 PnpInstanceID 16 // 如果前面有 PCI 就是本机的真实网卡 17 string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString(); 18 int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0)); 19 if (fPnpInstanceID.Length > 3 && 20 fPnpInstanceID.Substring(0, 3) == "PCI") 21 { 22 //string fCardType = "物理网卡"; 23 System.Net.NetworkInformation.IPInterfaceProperties fIPInterfaceProperties = adapter.GetIPProperties(); 24 System.Net.NetworkInformation.UnicastIPAddressInformationCollection UnicastIPAddressInformationCollection = fIPInterfaceProperties.UnicastAddresses; 25 foreach (System.Net.NetworkInformation.UnicastIPAddressInformation UnicastIPAddressInformation in UnicastIPAddressInformationCollection) 26 { 27 if (UnicastIPAddressInformation.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) 28 userIP = UnicastIPAddressInformation.Address.ToString(); // Ip 地址 29 } 30 break; 31 } 32 33 } 34 } 35 return userIP; 36 }
C# 从众多网卡中获取本地物理网卡的ip,布布扣,bubuko.com
时间: 2024-08-08 22:09:32