直接上代码了
/// <summary>
/// 根据mac获取IP地址
/// </summary>
/// <returns></returns>
public static string GetIpAddressByMac(string MACAddress)
{
string st = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true
&& mo.Properties["MACAddress"].Value.ToString() == MACAddress)
{
System.Array ar;
ar = (System.Array)(mo.Properties["IpAddress"].Value);
st = ar.GetValue(0).ToString();
break;
}
}
return st;
}
/// 获取IP地址
/// </summary>
/// <returns></returns>
public static string GetIpAddress()
{
//NetConnectionStatus uint16类型的属性,其中2代表已连接,7代表断开
ManagementObjectSearcher s = new ManagementObjectSearcher(
@"SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2 AND PNPDeviceID LIKE 'PCI%'");
var networklist = s.Get();
foreach(var mobj in networklist)
{
return GetIpAddressByMac(mobj.Properties["MACAddress"].Value.ToString());
}
return "";
}
/// <summary>
/// 获取IP地址结构
/// </summary>
/// <returns></returns>
public static IPAddress GetIpAddress(string ipaddress)
{
IPAddress[] arrIP = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress ip in arrIP)
{
if(ip.ToString() == ipaddress)
{
return ip;
}
}
return null;
}