C# - 机器有 250 个 ips,我只能从代码中检索 50 个

本文关键字:代码 检索 机器 ips | 更新日期: 2023-09-27 18:32:43

我有一台 linux(ubuntu 服务器 14.04)机器,有 250 个 ips。当我在单声道中运行 c# 代码时,它只检索 50 个 ips。

所有 ips 都配置正确,我在 java 中具有相同的代码,并且所有 250 个 ip 都已找到,并且可以绑定到。

我试过:

Dns.GetHostByName(Dns.GetHostName()).AddressList;

Dns.GetHostAddresses(string.Empty);

两者都返回 50 个 IP?

那么,我的问题是,c#中对可以发现的ip数量是否有限制?或者任何其他原因有人知道为什么会发生这种情况?

C# - 机器有 250 个 ips,我只能从代码中检索 50 个

我建议切换到不同的方法来获取相同的数据。

System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.getallnetworkinterfaces%28v=vs.110%29.aspx

您要求代码做的是获取当前计算机,并询问第二台服务器注册了哪些所有 IP 地址。相反,询问您所在的服务器IP地址会更容易,更可靠。有些可能未注册到 DNS 服务器,无论是本地服务器还是远程服务器。

Josh 的答案是正确的,但为了完整起见,以下是获取 IP 的完整代码:

var interfaces =  System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();
foreach (var netInterface in interfaces)
{
     IPInterfaceProperties ipProps = netInterface.GetIPProperties();
     foreach (UnicastIPAddressInformation addr in ipProps.UnicastAddresses)
     {
           Console.WriteLine(addr.Address.ToString());
     }                 
}