如何获取局域网中的所有IP地址?

3

我正在获取所有连接到局域网上的系统名称。我不知道如何获取所有系统名称的IP地址,例如(192.168.1.15)。


1
可能是如何获取局域网中所有主机的IP?的重复问题。 - Chawin
1
或者这个 https://dev59.com/nmw15IYBdhLWcg3wIoVM - Dmitry Bychenko
2个回答

6
这可能对你有所帮助。
foreach(NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
    foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
    {
        if(!ip.IsDnsEligible)
        {
            if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
            {
                // All IP Address in the LAN
            }
        }
    }
}

这段代码唯一的缺点是,在Windows XP之前的操作系统中,UnicastIPAddressInformation实例返回的信息不可用。

谢谢!在注释中列出本地局域网中的所有 IP 地址,我该如何将其显示在 richtextbox 中?请帮忙! - Vijay Anand

1
如果您已经知道主机名(正如您的问题所暗示的那样),您可以使用Dns.GetHostAddresses方法将它们转换为IP地址。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接