GetHostEntry返回本地计算机名而不是DNS名称

时间:2018-09-26 12:56:45

标签: c# dns

我有一台加入域的计算机,其文字计算机名是“ mycomputername”。它具有DHCP条目和DNS记录,其文字名称为“ mydnsname”。是的,本地计算机名和DNS是不同的。

当我使用反向 NSLOOKUP 查询DNS服务器时,将返回预期的名称“ mydnsname”。

但是,如果我在本地计算机上使用以下C#代码,则会返回本地名称“ mycomputername”。

string ipaddress="123.456.789.123"; //but my Real network IP
IPHostEntry hostEntry = Dns.GetHostEntry(ipaddress);
Console.WriteLine hostEntry.HostName;

这是意外的。据我所知,它应该查询DNS吗?

我确保将计算机命名为从未在DNS中使用过的名称,因此我知道DNS缓存在此阶段不会妨碍您的工作。如果我在本地重命名计算机,请重新启动,然后再次运行代码-返回更新的计算机名。

如果我修改DNS,则在本地计算机上运行时,永远不会返回修改后的DNS名称。 如果我在其他计算机上运行代码,但查询相同的IP,它将返回预期的DNS条目。

我试图刷新缓存,但这没有效果: Is there a way to flush the DNS cache from a C# WPF app? (on XP, Vista, Win7)

NSLOOKUP命令返回正确的名称。

0 个答案:

没有答案