关于如何查找本地IP地址、如何查找给定网络接口的IP地址有许多问题,但我需要查找IP地址所属的网络接口,例如,获取此接口的状态更改。
那么,如何获取分配了给定IP地址的网络接口呢?
发布于 2020-04-30 18:42:19
使用System.Net.NetworkInformation命名空间,我得到了以下解决方案:
public static NetworkInterface GetInterfaceForIP(IPAddress address)
{
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
{
if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
if (address.Equals(ip.Address))
return ni;
}
}
}
return null;
}这里没有太多的错误检查,这个函数返回IP的网络接口。
如果需要检查状态更改事件(电缆拔出等),可以使用System.Net.NetworkInformation名称空间中的NetworkChange事件。
https://stackoverflow.com/questions/61521558
复制相似问题