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         }

C# 从众多网卡中获取本地物理网卡的ip,布布扣,bubuko.com

时间: 2024-08-08 22:09:32

C# 从众多网卡中获取本地物理网卡的ip的相关文章

有线网卡与无线网卡、物理网卡与虚拟网卡的区分

获取当前活跃状态的网卡MAC地址.物理地址 Wmic命令:Win32_NetworkAdapter和Win32_NetworkAdapterConfiguration. 其中cmd命令行执行: 1. Wmic Path Win32_NetworkAdapter get GUID,MACAddress,NetEnabled,PhysicalAdapter,Index 备注: GUID:连接唯一标识; MACAddress:网卡地址; NetEnabled: 是否启用了适配器,True为启用,Fal

删除Windows中隐藏的物理网卡和网络虚拟化失败后的虚拟网卡

Windows环境下,在更换硬件服务器主板和网卡等硬件.恢复操作系统或者网络虚拟化失败后,可能会出现网卡方面的问题.例如,设备管理器中多了不应该存在的网卡:因命名冲突无法重命名当前网络连接:IP地址冲突却找不到那个与之冲突的网卡:网络虚拟化失败后出现无法删除的虚拟网卡等等.下面我们就来总结一下如何删除这些可见或不可见的Ghost一样的网卡. 一.识别各类网络设备和网络连接 由于网络虚拟化会在物理机上新增许多虚拟网络设备(包括虚拟网卡),情况会变得复杂,因而首先我们需要分清他们.当然如果没有进行网

为什么在openstack虚拟网络中要设置物理网卡为混杂模式promisc

L2 数据链路层通过交换机设备进行帧转发.交换机在接收到帧之后(L2 层叫帧,L3 层叫包)先解析出帧头中的 MAC 地址,再在转发表中查找是否有对应 MAC 地址的端口,有的话就从相应端口转发出去.没有,就洪泛(专业术语,即将帧转发到交换机的所有端口),每个端口上的计算机都检查帧头中的 MAC 地址是否与本机网卡的 MAC 地址一致,一致的话就接收数据帧,不一致就直接丢弃.而转发表是通过自学习自动建立的. 这里引出一个重要概念,混杂模式.默认情况下计算机只接收和本机 MAC 地址一致的数据帧,

在java中获取URL的域名或IP与端口

在java中获取URL的域名或IP与端口 获取IP与域名方法一,使用正则表达式 public static String getIP(String url) { //使用正则表达式过滤, String re = "((http|ftp|https)://)(([a-zA-Z0-9._-]+)|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}))(([a-zA-Z]{2,6})|(:[0-9]{1,4})?)"; String str = &quo

vue中获取本地ip

一.目的 获取当前访问的ip地址 二.思路 通过使用搜狐的api获取访问ip 三.操作步骤 1.在index.html中添加 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> 2.新建一个组件Admin.vue,调用方法 <template> <div> <h1>username:{{user.username}}</h1> <h1>

Servlet中获取客服端真实Ip地址

在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP. 在实习公司看到的一个方法: [java] view plaincopyprint? /** * 获取Ip地址 * 

iOS中获取本地通讯录联系人以及汉字首字母排序

/***  加载本地联系人*/ - (void)loadLocalContacts { //新建一个通讯录类 ABAddressBookRef addressBooks = nil; if (DeviceVersion < 6.0) { addressBooks = ABAddressBookCreate(); } else { addressBooks =  ABAddressBookCreateWithOptions(NULL, NULL); //获取通讯录权限 dispatch_semap

window系统上用PHP获取本地物理IP代码

<?php $res=system("ipconfig -all"); $contents=trim(ob_get_clean()); $contents=str_replace("\r\n","",$contents); $contents=explode(" ",$contents); foreach($contents as $k=>&$v) { $pre=substr($v,0,8); if($pr

获取本地请求的真实IP地址

1 /** 2 * 自定义访问对象工具类 3 * 4 * 获取对象的IP地址等信息 5 * 6 */ 7 public class CusAccessObjectUtil { 8 9 /** 10 * 获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址, 11 * 参考文章: http://developer.51cto.com/art/201111/305181.htm 12 * 13 * 可是,如果通过了多级反向代