我想从机器上运行的代码获取本地局域网的机器内部网 有没有一种确定的方法来做到这一点?在.NET中确定本地Intranet的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
让所有的IP和过滤,但这似乎有点魔术对我来说,我宁愿.NET所做的工作,它也返回多个IP地址,由于我有VirtualBox的安装
我也曾尝试以下
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))
有没有人有更好的办法?
如果你告诉我们你是如何计划使用* *这个结果我们或许可以认为更好的选择。不能保证特定机器可能使用的地址是什么,它可能是多宿主的,可能仅限于IPv6等,所以当前“过滤一定范围,只希望得到一个”将永远不会工作。 – 2012-08-15 10:27:16
它将被同一网络上的客户端使用,使用http – 2012-08-15 10:34:20
连接到该机器并且机器名称不起作用? – 2012-08-15 12:42:18