Dns.GetHostEntry 在两台不同的计算机上返回不同的地址

问题描述 投票:0回答:1

当我尝试使用

Dns.GetHostEntry
解析计算机上的特定域名时,它会返回一个 IP 地址(
AddressList
中只有一个地址),但是当我在同一网络上的服务器上运行同一行代码时,它返回一个完全不同的地址。

Here's 总结一下的屏幕截图。

不幸的是,我无法透露实际的域名,但是两个字符串(example.domain.com)完全相同。

我使用 mono 和 C# 交互是为了更容易演示,当我运行实际程序时也会发生同样的情况。

hosts
文件在两台电脑上都完好无损,因此不会干扰ip查找。

所以这是我的问题:为什么两台计算机为同一个域名返回两个不同的IP地址?如何强制程序只返回一个地址/包含域名指向的所有地址的列表?

c# networking dns mono ip-address
1个回答
0
投票

公共静态字符串 GetLocalIPAddress() {

var host = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
foreach (var ip in host.AddressList)
{

    if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
    {
       return ip.ToString();
    }
}

}

© www.soinside.com 2019 - 2024. All rights reserved.