外部DNS查找Web服务(NSLOOKUP / DiG)

时间:2010-10-04 13:00:34

标签: c# web-services dns nslookup

有几个网站提供IP转换的主机名,或者使用其措辞:

  

查询DNS域名服务器   查找并查找IP地址信息   互联网上的电脑。兑换   主机或域名到IP   地址。

但是,我找不到任何提供此功能的免费网络服务。 我偶然发现了这个Chinese webservice,但它似乎没有做我想要的。

有人知道免费吗?

澄清正是我希望能够做到的: 我想要一个免费的外部 Web服务(在与我不同的计算机上,在互联网的某个地方)提供一个简单的 nslookup 方法,其签名如下:

IPAddress[] GetIpAddress(string hostName)

结果与我在这里得到的结果相同:  http://www.kloth.net/services/nslookup.php

1 个答案:

答案 0 :(得分:4)

您没有准确说出您希望能够做到的事情。但是,有一个或两个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

您无需第三方服务就可以执行此操作。