可用的IP地址呈现给用户

时间:2012-04-17 09:44:58

标签: .net networking network-programming usability

我正在编写服务器/客户端分布式工具。用户必须在某个时刻输入网络地址。我想通过告诉他们来帮助亲爱的用户确定当前的IP地址。

[更新] 客户端和服务器在同一网络中运行。 (或者用户可以访问管理员) [/ Update]

当我致电Dns.GetHostAddresses(Dns.GetHostName())时,我得到了一堆漏洞,这些参赛作品都是正确的,但并非真正有用。 我可以通过启发式选择最合适的条目呈现给用户吗?

1 个答案:

答案 0 :(得分:2)

如果我理解您的问题,您可以将IPAddress.AddressFamilyAddressFamily.InterNetwork进行比较以过滤

if (ip.AddressFamily == AddressFamily.InterNetwork)

这是完整的代码

IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
    if (ip.AddressFamily == AddressFamily.InterNetwork)
    {
        // Local ip address
    }
}

AddressFamily.InterNetwork是针对IPv4地址的值。如果是IPv6,您可以使用AddressFamily.InterNetworkV6。有关完整列表,请please check this link