c# - GetHostEntry 返回本地计算机名而不是 DNS 名称
问题描述
我有一台加入域的计算机,其计算机名称为“mycomputername”。它有一个 DHCP 条目和带有文字名称“mydnsname”的 DNS 记录。是的,本地计算机名和 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 条目。
我试图刷新缓存,但这没有效果: 有没有办法从 C# WPF 应用程序中刷新 DNS 缓存?(在 XP、Vista、Win7 上)
NSLOOKUP 命令返回正确的名称。
解决方案
推荐阅读
- python - 为什么我的游戏代码在 pygame 上显示为黑屏?
- c# - Azure 函数无法命中 HttpTrigger
- mongodb - .shift 在 MongoDB 中会做什么?
- python - 具有 Python 请求的多个唯一自治会话
- c++ - 发布多个 mqtt 主题和传感器值的缓冲区大小
- google-cloud-platform - google pub sub 中的消息排序是否遵守截止日期?
- android - 运行颤振医生失败
- python-3.x - SQLAlchemy @event.listens_for(Class, 'after_insert') 用于 SQL 表达式“INSERT INTO table(cols) VALUES (values)”
- java - Mockito 和 PowerMock:需要但未调用
- python - 将 C++ 中的指针转换为 Cython 中的 Numpy 数组