我想從機器上運行的代碼獲取本地局域網的機器內部網 有沒有一種確定的方法來做到這一點?在.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