【问题标题】:C# How would I list down the IP Addresses of network computers in a listbox?C# 如何在列表框中列出网络计算机的 IP 地址?
【发布时间】:2012-01-07 20:33:13
【问题描述】:

通过套接字连接到另一台计算机(我已经成功了,哎呀)需要输入主机的 IP 地址,我的教授认为它“对用户不友好”。

我以前的程序涉及使用服务器,由于 Socket 连接的东西,现在不再需要它。我当时使用的代码是列出网络名称,这是我的教授非常喜欢的。

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

当用户在网络上选择计算机名称时,是否可以使用该代码并让程序检索 IP 地址(如果可能,IPv4)?这将在任何套接字连接建立之前完成。

或者如果失败/不可能,我将如何在列表框中列出计算机的 IP 地址?我真的不确定如何实现我一直听说的那个 ARPing。

不幸的是,我的学校只运行 .NET 2.0,所以恐怕我唯一的选择是 C# Windows 窗体,而没有 WCF 或任何东西。

非常感谢所有回答的人。

【问题讨论】:

    标签: c# .net-2.0 ip-address


    【解决方案1】:

    您可以执行 DNS 请求以获取 IP 地址:

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

    您必须包含 System.Net(在 .NET 2.0 中可用)

    【讨论】:

    • 成功了!它确实列出了 IPv6,除此之外。无论如何,我可以将其过滤为仅 IPv4?也许是长度检查?但无论如何,非常感谢您的回答!
    • 最好的方法是使用 AddressFamily 属性,如下所述:link
    猜你喜欢
    • 2014-04-15
    • 2014-08-25
    • 1970-01-01
    • 2010-09-17
    • 2014-05-25
    • 2012-10-28
    • 2016-04-21
    • 2011-02-03
    • 1970-01-01
    相关资源
    最近更新 更多