Как получить FQDN IP-адресов в C #? - PullRequest
4 голосов
/ 24 февраля 2011

На машине может быть доступно несколько IP-адресов. Как я могу узнать все соответствующие полные доменные имена (fqdn)?

Обновление:

Я попробовал следующее:

IPHostEntry he = Dns.GetHostEntry(Environment.UserDomainName);
foreach (IPAddress ipAddress in he.AddressList)
{
    string x = ipAddress.ToString();
    string y = Dns.GetHostEntry(ipAddress.ToString()).HostName;
}

У меня есть машина с 2 IP-адресами, пинг, использующий их fqdn, возвращает правильные IP-адреса. Однако приведенный выше код всегда возвращает мне одно значение первого IP-адреса.

Моя настройка выглядит следующим образом:

IP1:
123.123.123.123
Name1

IP2:
456.456.456.456
Name2

И ping, и nslookup возвращают правильное значение.

Проблема в том, что обе строки

Dns.GetHostEntry("123.123.123.123").HostName;
Dns.GetHostEntry("456.456.456.456").HostName;

возвращает «Имя1» (вместо «Имя1» и «Имя2»).

Однако коды

Dns.GetHostEntry("Name1").HostName;
Dns.GetHostEntry("Name2").HostName;

работают правильно.

1 Ответ

2 голосов
/ 24 февраля 2011

Вы разрешаете каждый IP-адрес для имени netbios.

Dim hostEntry As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry("192.168.115.54")
Console.WriteLine(hostEntry.HostName)

Например, если я разрешу свой IP, я получу:

PC-MYNAME.MYDOMAIN.local

Затем вы также можете использовать ActiveDirectory для перечисления CurrentForrest (доступных доменов).

...