我正在尝试从该机器上运行的代码中获取该机器的本地 Intranet ip 有没有明确的方法可以做到这一点?
我尝试获取所有 IP 并按 10.0.0.0-10.255.255.255,172.16.0.0-172.31.255.255,192.168.0.0-192.168.255.255 过滤
Dns.GetHostEntry(Dns.GetHostName()).AddressList
但这对我来说似乎有点神奇,我宁愿 .net 完成这项工作,由于我安装了 VirtualBox,它也会返回多个 ip
我也试过以下
var localAddress =
(
from ni in NetworkInterface.GetAllNetworkInterfaces()
where ni.NetworkInterfaceType != NetworkInterfaceType.Loopback
&& hostEntry.HostName.EndsWith(string.Concat(".", ni.Name))
let props = ni.GetIPProperties()
from unicastAddress in props.UnicastAddresses
where unicastAddress.Address.AddressFamily == AddressFamily.InterNetwork
select unicastAddress.Address).FirstOrDefault();
哪个有效,但它适用于其他网络配置吗?
这一点与我有关hostEntry.HostName.EndsWith(string.Concat(".", ni.Name))
有没有人有更好的方法?