0

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

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

当我打电话时,Dns.GetHostAddresses(Dns.GetHostName())我得到了一堆完全正确但没有真正帮助的条目。我可以通过哪种启发式方法选择最合适的条目来呈现给用户?

4

1 回答 1

2

如果我理解你的问题是正确的,你可以比较IPAddress.AddressFamily过滤AddressFamily.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. 如需完整列表,请查看此链接

于 2012-04-17T09:59:41.017 回答