mic*_*fox 1 c# windows ip-address
我使用此代码获取可用的IPv4地址:
static void Main(string[] args)
{
string host = System.Net.Dns.GetHostName();
System.Net.IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(host);
System.Net.IPAddress[] ipAddr = ipEntry.AddressList;
for (int i = 0; i < ipAddr.Length; i++)
{
if (ipAddr[i].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
Console.WriteLine( ipAddr[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
对于我的机器,这目前给出:
192.168.1.11
192.168.240.1
192.168.182.1
10.1.1.121
192.168.1.11是我的网络适配器,接下来的两个来自VMware Network,10.1.1.121来自当前活动的OpenVPN连接.
如何才能可靠地检测IPv4地址192.168.1.11(=网络适配器)?我猜这只是偶然的第一名.
谢谢,罗伯特
你得到的答案并不完全正确,因为你的例子中的那四个IPv4地址都属于网络适配器,即使它们可能只是虚拟的.
要获取有关网络接口的更多信息,应检查NetworkInterface类或WMI.例如,您可以按类型过滤掉以删除环回和隧道接口.
实际使用的是哪个网络适配器,据我所知,它取决于您要发送的数据包的目标地址.网络适配器使用地址解析协议来检查它们是否可以到达desination IP和网关的MAC地址.
如此简短的回答; 没有默认的网络适配器.
| 归档时间: |
|
| 查看次数: |
10114 次 |
| 最近记录: |