首页 > 代码库 > C# 从众多网卡中获取本地物理网卡的ip
C# 从众多网卡中获取本地物理网卡的ip
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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。