2015-07-28 65 views
0

我用下面的代碼來獲取IP地址:爲什麼dns.gethotentry()方法返回地址列表爲空?

var ip = Dns.GetHostEntry(host);      
var ipaddress = ip.AddressList.FirstOrDefault(x => x.AddressFamily == AddressFamily.InterNetwork).ToString(); 

我可以能ping從命令提示符下此主機名。

但是當我使用GethostEntry()時,它會正確返回主機名。

AddressList爲空。

而且它不工作,而我給本地機ipaddress。
它爲什麼會發生?

+0

什麼是你'host'變量的內容?我剛剛用'Dns.GetHostEntry(「google.com」)進行測試,結果包含一個包含16個條目的AddressList。 – LInsoDeTeh

+0

拆分你的問題:'ip.AddressList'爲空是否爲FirstOrDefault使用的過濾器不返回地址?轉儲在ip.AddressList中找到的每個元素 –

回答

0

嘗試使用此代碼使用:

PHostEntry host; 
string localIP = ""; 
host = Dns.GetHostEntry(Dns.GetHostName()); 
    foreach (IPAddress ip in host.AddressList) 
{ 
if (ip.AddressFamily == AddressFamily.InterNetwork) 
{ 
    localIP = ip.ToString(); 
    } 
} 
return localIP; 
相關問題