你没有确切地说出你想要做什么。但是,有一种或两种dig
类型的 C# 实现,例如:
DNS.NET 解析器 (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
您不需要第三方服务即可执行此操作。