2011-11-28 108 views
2

連接到通過套接字另一臺計算機(其中我在,我耶有些成功)涉及的主機的IP地址,其中我的教授認爲「不人性化」打字。C#如何在列表框中列出網絡計算機的IP地址?

我以前的方案涉及使用一臺服務器,現在不再需要因Socket連接的東西。我當時使用的代碼是列出網絡名稱,這是我的教授非常喜歡的。

NetworkBrowser nb = new NetworkBrowser(); 
foreach (string pc in nb.getNetworkComputers()) 
{ 
    lstNet.Items.Add(pc); 
} 

有沒有可能,比方說,使用這些代碼,並有計劃獲取IP地址(IPv4,如果可能的話),當用戶在網絡上選擇一個計算機名稱?這將在任何套接字連接之前完成。

或者如果失敗了/是不可能的,我將如何名單下跌ListBox中的計算機的IP地址?我真的不確定如何實現我聽到的有關ARP的事情。

不幸的是,我校只運行.NET 2.0,所以我怕我唯一的選擇是C#Windows窗體,並沒有WCF或任何東西。

非常感謝所有和任何誰回答。

回答

4

可以執行DNS請求獲得IP地址:

IPAddress[] addresslist = Dns.GetHostAddresses(pc); 
foreach (IPAddress address in addresslist) 
{ 
    Console.WriteLine(address.ToString()); 
} 

你將不得不包括System.Net(可在.NET 2.0)

+0

這工作!除了其他內容外,它還列出了IPv6。無論如何,我可以過濾只是IPv4?一個長度檢查也許? 但無論如何,非常感謝答案! –

+1

最好的辦法是按此處的說明使用AddressFamily屬性:[鏈接](http://stackoverflow.com/questions/6668810/c-sharp-get-ipv4-ipaddress-only) – Flanfl

+0

謝謝!我會研究它。 –

相關問題