4


0

.NET:このドメインが解決しないのはなぜですか?

特定のドメイン名が存在するかどうかをプログラムでテストしようとしています。

次のコード行は期待どおりに機能します。

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 Answer


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)を追加すると、動作します。


4


google.comには、IPアドレスに関連付けるAレコードがあります。 bks-campus.chにはA、AAAA、またはCNAMEレコードがないため、エラーが発生します。

ドメインのAレコードが見つからない場合、ブラウザはおそらくwwwを自動的に追加しています。

'' '' '

Edit:dig出力は、bks-campus.chが存在するがAレコードがないことを確認します。


2


`bks-campus.ch`にはDNSエントリがありません。 おそらくブラウザはDNSエントリを持つ `www.bks-campus.ch`に変換され、おそらくコードからも動作するでしょう。

編集:ドメイン名は存在しますが、DNSはおそらくそれを知りません。 私のものはそうではありませんが、「www.bks-campus.ch」は知っています。


2


コードで実行しようとしているのは、ドメインにbks-campus.chの解決されたdns Aレコードがあるかどうかを確認することです。 あなたがしたいことは、ドメインのSOAレコードをリクエストすることです。 MXレコードを検索するこのhttp://www.codeproject.com/KB/IP/dnslookupdotnet.aspx[CodeProject]プロジェクトを参照してください。 レコードのタイプをSOAに変更するだけです

これは、ドメインがネームサーバーに委任されている場合にのみ機能します。 登録済みで、DNSサーバーを指していないドメインがいくつかあります。 これらの場合、ブラウザにドメイン名を入力すると、エラーメッセージが表示されます。

ドメインが登録されているかどうかを確認する最良の方法は、WHOISルックアップを実行することです。 これらはTLDレジストリによって実行され、誰がドメイン名を登録したかを確認できるようにします。 whois.nic.coopのポート43にtelnetで接続し、「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サーバーが報告するかどうかを確認します。


1


特定のドメインが存在するかどうかを確認する別の方法は、問題のドメインのNSルックアップを実行することです。 ドメインが存在する場合、ドメインの登録済みネームサーバーがタイムアウトした場合でも、NSレコードが必要です。


0


「NETWORK ADAPTER」のDNSサーバーを「4.2.2.2」または「4.2.2.3」に設定してみてください。 ほとんどの場合、ISPのDNSサーバーがタイムリーに応答しないことがあるため、これがうまくいくと思います。 コメントで結果をお知らせください。


0


多くの理由が思い浮かびますが、最も可能性が高いのは、DNSインフラストラクチャがこのドメインを解決するように設定されていないことです。

Webブラウザーから参照できる場合でも、Webプロキシを経由しているかどうかはあまりわかりません。 プロキシがローカルマシンではなくホストを解決できることを通知するだけです。

最も簡単な方法は、コマンドラインからnslookupを試すことです

nslookup bks-campus.ch

これが失敗した場合、マシンが使用しているDNSはこれを解決できないため、コードで解決する方法はありません。

これに合格した場合、さらに調査が必要です。 詳細情報を投稿する :)