2011-11-28 53 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

谢谢!我会研究它。 –

相关问题