Вы не говорите точно, что хотите сделать.Однако существует одна или две реализации 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
Вам не нужен сторонний сервис, чтобы сделать это.