2014-03-12 55 views
0

你好我想獲得一臺主機的IP地址,我找到的代碼是這樣的:獲取IP

string howtogeek = "www.google.com"; 
    IPAddress[] addresslist = Dns.GetHostAddresses(howtogeek); 
    foreach (IPAddress theaddress in addresslist) 
    { 
     test.AppendText(theaddress.ToString() + Environment.NewLine); 
    } 

的問題是,我只得到了第一個IP發現不使用的foreach,因爲我只想要第一個,任何人都可以幫助我?

+2

'ip地址firstOne = addresslist.FirstOrDefault();' – itsme86

+0

你這是什麼需要IP地址嗎?你有什麼理由不能做你想要的主機名? – Robert

回答

3

你可以只使用:

string howtogeek = "www.google.com"; 
IPAddress[] addresslist = Dns.GetHostAddresses(howtogeek); 
var firstIp = addresslist[0]; 

根據您所使用的框架,你也可以使用Enumerable.FirstOrDefault()

string howtogeek = "www.google.com"; 
IPAddress[] addresslist = Dns.GetHostAddresses(howtogeek); 
var firstIp = addresslist.FirstOrDefault(); 
+0

感謝您的幫助。 – user3015248

+0

好的答案...... –

0

通常機器可以有多個IP地址。如果只有一個網絡適配器XX,則至少有兩個IP:網絡適配器XX ip和回送127.0.0.1。 那說,你可以使用下面的代碼來獲取第一IP:

string howtogeek = "www.google.com"; 
IPAddress[] addresslist = Dns.GetHostAddresses(howtogeek); 
if(addresslist.Lengt > 0){ 
    test.AppendText(addresslist[0].ToString() + Environment.NewLine); 
} 
+0

雖然每個網卡至少有兩個地址,包括環回,但是您將永遠無法通過使用Dns.GetHostAddresses來查看它,因爲這會在遠程機器上查詢IP的DNS註冊,有更好的選擇獲得本地IP地址。只是要清楚,因爲人們不應該關心回送地址 – Jason

0

第一個IP地址將

string howtogeek = "www.google.com"; 
IPAddress[] addresslist = Dns.GetHostAddresses(howtogeek); 
IPAddress firstAddress = addresslist[0];