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("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();
}
}
}
C# 获取本机IP且过滤非真实网卡(如虚拟机网卡)
最新推荐文章于 2025-05-04 10:25:55 发布