У меня есть присоединенный к домену компьютер с буквальным компьютерным именем «mycomputername».Он имеет запись DHCP и запись DNS с буквальным именем «mydnsname».Да, локальное имя компьютера и DNS различаются.
Когда я запрашиваю наши DNS-серверы, используя обратный NSLOOKUP , возвращается ожидаемое имя «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 .
Я попытался очистить кэш, но это не имеет никакого эффекта: Есть ли способ очистить кэш DNS из WPF-приложения C #?(в XP, Vista, Win7)
Команда NSLOOKUP возвращает правильное имя.