C#获取本机IP且过滤非真实网卡(如虚拟机网卡)
来源:互联网 发布:提取声音的软件 编辑:程序博客网 时间:2024/05/22 10:39
参考了网上的文章,具体地址不记得了。
下面的方法可以过滤掉虚拟机的网卡等无效网卡,进而只留下真实的网卡。
下面的代码有些问题,如果用户修改了虚拟机网络名称,判断就会出错,所以判断的名字不是很合适,应该用description判断
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Management;
- namespace _15获取本机IP_过滤非真实网卡_
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<string> listIP = new List<string>();
- ManagementClass mcNetworkAdapterConfig = new ManagementClass("Win32_NetworkAdapterConfiguration");
- ManagementObjectCollection moc_NetworkAdapterConfig = mcNetworkAdapterConfig.GetInstances();
- foreach (ManagementObject mo in moc_NetworkAdapterConfig)
- {
- string mServiceName = mo["ServiceName"] as string;
- //过滤非真实的网卡
- if (!(bool)mo["IPEnabled"])
- { continue; }
- if (mServiceName.ToLower().Contains("vmnetadapter")
- ||mServiceName.ToLower().Contains("vmware")
- || mServiceName.ToLower().Contains("ppoe")
- || mServiceName.ToLower().Contains("bthpan")
- || mServiceName.ToLower().Contains("tapvpn")
- || mServiceName.ToLower().Contains("ndisip")
- || mServiceName.ToLower().Contains("sinforvnic"))
- { continue; }
- //bool mDHCPEnabled = (bool)mo["IPEnabled"];//是否开启了DHCP
- //string mCaption = mo["Caption"] as string;
- //string mMACAddress = mo["MACAddress"] as string;
- string[] mIPAddress = mo["IPAddress"] as string[];
- //string[] mIPSubnet = mo["IPSubnet"] as string[];
- //string[] mDefaultIPGateway = mo["DefaultIPGateway"] as string[];
- //string[] mDNSServerSearchOrder = mo["DNSServerSearchOrder"] as string[];
- //Console.WriteLine(mDHCPEnabled);
- //Console.WriteLine(mCaption);
- //Console.WriteLine(mMACAddress);
- //PrintArray(mIPAddress);
- //PrintArray(mIPSubnet);
- //PrintArray(mDefaultIPGateway);
- //PrintArray(mDNSServerSearchOrder);
- if (mIPAddress != null)
- {
- foreach (string ip in mIPAddress)
- {
- if (ip != "0.0.0.0")
- {
- listIP.Add(ip);
- }
- }
- }
- mo.Dispose();
- }
- PrintList(listIP);
- Console.WriteLine("-- -- The End -- --");
- Console.ReadKey();
- }
- static void PrintList<T>(List<T> list)
- {
- foreach(T item in list)
- {
- Console.WriteLine(item);
- }
- }
- static void PrintArray<T>(T[] list)
- {
- foreach (T item in list)
- {
- Console.WriteLine(item);
- }
- Console.WriteLine();
- }
- }
- }
转自:http://blog.csdn.net/frombegintoend/article/details/9228623
0 0
- C#获取本机IP且过滤非真实网卡(如虚拟机网卡)
- C# 获取本机IP且过滤非真实网卡(如虚拟机网卡)
- C#获取本机IP且过滤非真实网卡(如虚拟机网卡)
- c#获取本机多网卡ip地址
- 获取本机IP(考虑多块网卡、虚拟机等复杂情况)
- 获取本机物理网卡,排除虚拟机
- linux获取本机网卡ip地址
- JAVA获取本机网卡IP地址
- python获取本机网卡IP
- ioctl 获取本机网卡ip地址 | socket()
- vc 获取本机网卡真实mac地址
- 获取本机IP时如何去除虚拟网卡IP
- 获取本机网卡地址(单网卡)
- 获取本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息及网线是否插入状态
- 获得本机网卡IP
- 【转】Java获取本机IP/网卡MAC
- 用Python获取本机网卡IP数据包
- linux c获取本机网卡ip地址
- 安卓自定义View进阶
- 用c++实现AES基本算法
- C++中的变量是否相等 和 Java中的变量是否相等的判断
- 小米风控实践
- 一道C++笔试题的解读
- C#获取本机IP且过滤非真实网卡(如虚拟机网卡)
- Java中Properties类的操作
- Efficient Gaussian blur with linear sampling
- Python 小案例 猜数字游戏
- Java-多线程-并发编程
- 《Data Mining:Concepts and Techniques》翻译与笔记
- Linux编程基础之进程间通信之四:共享内存
- java 远程方法调用示例
- 实体类含有自身或者另一个实体时转json