.NET:为什么这个域无法解析?

时间:2010-07-02 10:39:51

标签: c# .net dns

我正在尝试以编程方式测试给定的域名是否存在。

以下代码行按预期工作:

IPHostEntry IPhst =Dns.GetHostEntry("google.com");

但它同时在同一台主机上的某些域失败了。例如,以下引发异常。

IPHostEntry IPhst =Dns.GetHostEntry("bks-campus.ch");

结果异常与域名根本不存在时引发的异常相同。

奇怪的是域实际存在。我可以从刚刚运行上面代码的同一台机器上浏览它。

这可能是什么问题,我该如何解决这个问题?

编辑:Dig也同意此域名确实存在:

dig bks-campus.ch

; <<>> DiG 9.5.0-P2 <<>> bks-campus.ch
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14744
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;bks-campus.ch.                 IN      A

;; AUTHORITY SECTION:
bks-campus.ch.          3600    IN      SOA     dns1.bks-campus.ch. hostmaster.kanti-chur.ch. 1275546863 10800 3600 604800 86400

;; Query time: 1214 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Fri Jul  2 12:50:10 2010
;; MSG SIZE  rcvd: 94

7 个答案:

答案 0 :(得分:5)

; <<>> DiG 9.3.2 <<>> any bks-campus.ch @olympus
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1406
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;bks-campus.ch.                 IN      ANY

;; ANSWER SECTION:
bks-campus.ch.          86400   IN      SOA     dns1.bks-campus.ch. hostmaster.kanti-chur.ch. 1275546863 10800 3600 604800 86400
bks-campus.ch.          86400   IN      MX      20 cws02.netgrouper.ch.
bks-campus.ch.          86400   IN      MX      20 cws01.netgrouper.ch.
bks-campus.ch.          86400   IN      NS      dns1.bks-campus.ch.

;; AUTHORITY SECTION:
bks-campus.ch.          86400   IN      NS      dns1.bks-campus.ch.

;; ADDITIONAL SECTION:
cws02.netgrouper.ch.    32548   IN      A       194.150.160.32

;; Query time: 179 msec
;; SERVER: 192.168.2.4#53(192.168.2.4)
;; WHEN: Fri Jul 02 13:00:48 2010
;; MSG SIZE  rcvd: 193

bks-campus.ch没有A(IPv4)记录,也没有任何CNAME(别名)或AAAA(IPv6)。响应只告诉我们哪些服务器处理邮件(MX),dns(NS)和一些管理记录(SOA)。响应中没有任何内容告诉解析器在哪里找到bks-campus.ch。添加A记录(或CNAME),它将起作用。

答案 1 :(得分:4)

google.com有一条将其与IP地址相关联的A记录。 bks-campus.ch没有任何A,AAAA或CNAME记录,因此您收到错误。

当您的浏览器无法找到该域的A记录时,它可能会自动添加www。


编辑:您的挖掘输出确认bks-campus.ch存在但没有A记录。

答案 2 :(得分:2)

bks-campus.ch没有DNS条目。可能浏览器会转换为www.bks-campus.ch,它有一个DNS条目,也可能来自代码。

编辑:域名存在,但您的DNS可能不知道。我没有,但它知道www.bks-campus.ch

答案 3 :(得分:2)

您尝试通过代码执行的操作是查看域是否具有bks-campus.ch的解析dns A记录。您要做的是请求域的SOA记录。请参阅搜索MX记录的此CodeProject项目。只需将记录类型更改为SOA

即可

仅当域已委托给名称服务器时,此操作才有效。有些域已经注册,但没有指向DNS服务器。在这些情况下,如果您在浏览器中输入域名,则会收到错误消息。

了解域名是否已注册的最佳方法是进行WHOIS查找。这些由TLD注册管理机构运营,以允许人们检查谁注册了域名。如果您telnet到whois.nic.coop的端口43并输入域名“nosuchdomain.coop”,您将获得注册该域名的详细信息。

.coop registry WHOIS server

For help on using this server use "?" (without the quotes).
For more .coop information browse to http://www.coop

nosuchdomain.coop
No domain records were found to match "nosuchdomain.coop"

--------------------------------------------------------------------------------

The .coop registry WHOIS database provides information for .coop registered
names only. Although every effort is made to maintain the accuracy of the WHOIS
data, accuracy cannot be guaranteed.

This service is intended only for query-based access. You agree that you will
use this data only for lawful purposes and that, under no circumstances will you
use this data to: (a) allow, enable, or otherwise support the transmission by
e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or
solicitations to entities other than the data recipient's own existing
customers; or (b) enable high volume, automated, electronic processes that send
queries or data to the systems of Registry Operator or any ICANN-Accredited
Registrar, except as reasonably necessary to register domain names or modify
existing registrations. The compilation, repackaging, dissemination or other use
of this Data is expressly prohibited without the prior written consent of
dotCoop. All rights reserved. dotCoop reserves the right to modify these terms
at any time. By submitting this query, you agree to abide by this policy.

BY USING THE WHOIS SERVICE AND THE DATA CONTAINED HEREIN OR IN ANY REPORT
GENERATED WITH RESPECT THERETO, IT IS ACCEPTED THAT DOTCOOP IS NOT LIABLE FOR
ANY DAMAGES OF ANY KIND ARISING OUT OF, OR IN CONNECTION WITH, THE REPORT OR THE
INFORMATION PROVIDED BY THE WHOIS SERVICE, NOR OMISSIONS OR MISSING INFORMATION.
THE RESULTS OF ANY WHOIS REPORT OR INFORMATION PROVIDED BY THE WHOIS SERVICE
CANNOT BE RELIED UPON IN CONTEMPLATION OF LEGAL PROCEEDINGS WITHOUT FURTHER
VERIFICATION, NOR DO SUCH RESULTS CONSTITUTE A LEGAL OPINION.

如果您在正确的服务器上打开此端口的套接字并将其发送给域,请捕获响应,然后解析此信息以查看WHOIS服务器是否报告该域是否已注册。

答案 4 :(得分:1)

查看给定域是否存在的另一种方法是对相关域进行NS查找。如果域存在,则它必须具有NS记录,即使域的注册域名服务器超时。

答案 5 :(得分:0)

尝试为NETWORK ADAPTER设置4.2.2.24.2.2.3的DNS服务器。大多数情况如果我没有弄错,这将有效,因为有时ISP的DNS服务器不及时响应。请在评论中告诉我您的结果。

答案 6 :(得分:0)

我想到了很多原因,但最有可能的原因是您的DNS基础架构未设置为解析此域。

请记住,即使您可以从Web浏览器浏览它,但如果您也通过Web代理,也不会告诉您太多。它只是告诉您代理可以解析主机,而不是本地计算机。

最简单的方法是从命令行尝试nslookup

nslookup bks-campus.ch

如果失败,您的计算机使用的DNS无法解决此问题,因此您的代码无法使用。

如果通过,则需要进行更多调查。发回更多信息:)