Внешний веб-сервис поиска DNS (NSLOOKUP / DiG) - PullRequest
2 голосов
/ 04 октября 2010

Некоторые сайты предлагают преобразования имени хоста в IP или в их формулировке:

Запрос DNS-сервера доменных имен на поиск и найти информацию об IP-адресе компьютеров в интернете. Перерабатывать имя хоста или домена в IP адрес.

Однако я не смог найти ни одного бесплатного веб-сервиса, предлагающего эту функцию. Я наткнулся на этот китайский веб-сервис , но, похоже, он не делает то, что я хочу.

Кто-нибудь знает о бесплатном?

Разъяснение того, что я хочу сделать: Мне нужен бесплатный, внешний веб-сервис (на компьютере, отличном от моего, где-то в Интернете), обеспечивающий простой метод nslookup с подписью, такой как:

IPAddress[] GetIpAddress(string hostName)

Где результат эквивалентен тому, что я получил бы здесь: http://www.kloth.net/services/nslookup.php

1 Ответ

4 голосов
/ 04 октября 2010

Вы не говорите точно, что хотите сделать.Однако существует одна или две реализации dig типа C #, такие как:

DNS.NET Resolver (C #) - CodeProject

Я использовал этот в прошлом, и он работает довольно хорошо.

Обновление:

У вас уже есть это доступно.Существует множество бесплатных служб DNS, таких как Google или OpenDNS, которые вы можете использовать в качестве серверов имен.

Используя встроенные возможности .NET, вы можете использовать пространство имен System.Net и класс Dns.Вы можете использовать несколько статических методов:

IPHostEntry GetHostEntry(string hostNameOrAddress)

IPAddress[] GetHostAddresses(string hostNameOrAddress)

запросите DNS-серверы, как указано в настройках собственной сети компьютера.

Если вы хотите указать свой собственный распознаватель, используйте инструмент Dig, который я упоминал выше.Вывод идет прямо в консоль, но вы можете изменить его, чтобы разобрать результаты в возвращаемые значения.

Добавив ссылку на проект, я смог сделать это:

Dig dig = new Dig();
dig.DnsResolver = new Resolver("8.8.8.8");
dig.DigIt("stackoverflow.com");

Возвращенные результатывыглядит так:

; <<>> Dig.Net 0.0.1 <<>> @8.8.8.8 A stackoverflow.com.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53737
;; flags:  qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;stackoverflow.com.net.                 IN      A

;; ANSWER SECTION:
stackoverflow.com.net.          1800    IN      A       74.207.240.60
stackoverflow.com.net.          3600    IN      A       203.169.164.119
stackoverflow.com.net.          3600    IN      A       97.107.142.101
stackoverflow.com.net.          1800    IN      A       69.164.199.155
stackoverflow.com.net.          43200   IN      A       74.207.231.120
stackoverflow.com.net.          43200   IN      A       109.74.195.184

;; Query time: 216 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Oct 04 17:11:48 2010
;; MSG SIZE rcvd: 135

Вам не нужен сторонний сервис, чтобы сделать это.

...