C# Dns.GetHostAddresses()为同一域中的不同主机名提供相同的IP地址

C# Dns.GetHostAddresses()为同一域中的不同主机名提供相同的IP地址,c#,C#,我试图通过向Dns.GetHostAddresses()成员函数提供主机名来获取同一域中不同计算机的IP地址,但它返回所有计算机的69.172.200.109 IP地址。我不知道这个问题的确切解决办法。对此,我们非常感谢您的解决方案 IP地址[]IP; ips=Dns.GetHostAddresses(主机名); foreach(ips中的ip地址ip) { if(ip.AddressFamily==AddressFamily.InterNetwork) { ipAddress=ip.ToStr

我试图通过向Dns.GetHostAddresses()成员函数提供主机名来获取同一域中不同计算机的IP地址,但它返回所有计算机的69.172.200.109 IP地址。我不知道这个问题的确切解决办法。对此,我们非常感谢您的解决方案

IP地址[]IP; ips=Dns.GetHostAddresses(主机名); foreach(ips中的ip地址ip) { if(ip.AddressFamily==AddressFamily.InterNetwork) { ipAddress=ip.ToString(); 打破 }
}

如果中间有另一台服务器,根据请求中接收到的主机名将请求路由到相应的服务器,则很可能会遇到这种情况。您正在接收的地址可能是该中间服务器的地址。有关更多详细信息,请参阅


其次,如果您正在查询的是本地DNS,请确保仔细检查此处配置的地址。

您可以尝试使用下面的代码获取域中的所有ip地址

  String strHostName = Dns.GetHostName();

// Find host by name
IPHostEntry iphostentry = Dns.GetHostByName(strHostName);

// Enumerate IP addresses
foreach(IPAddress ipaddress in iphostentry.AddressList)
{
    ....
}

请发布您的代码如果您从web应用程序调用它,您将获得服务器的IP,而不是客户端的IP。是的!对于本地计算机,它工作正常,但我正试图通过提供计算机名来获取另一个计算机地址。这两台计算机都在同一个域中,我在这里发现了问题,但它仍然返回69.172.200.109。只有当您的计算机在同一个intranet中时,上述代码才有效!