我正在编写服务器/客户端分布式工具。用户必须在某个时刻输入网络地址。我想通过告诉他们来帮助亲爱的用户确定当前的IP地址。
[更新] 客户端和服务器在同一网络中运行。 (或者用户可以访问管理员) [/ Update]
当我致电Dns.GetHostAddresses(Dns.GetHostName())
时,我得到了一堆漏洞,这些参赛作品都是正确的,但并非真正有用。 我可以通过启发式选择最合适的条目呈现给用户吗?
答案 0 :(得分: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
。有关完整列表,请please check this link。