0

Dns.GetHostEntryメソッドを使用して、DNS サーバーから特定の IP の HOSTNAME を取得しようとしています。

ドキュメントによると、メソッドは最初に IP アドレスの逆引きを試​​みます。私の場合、これは を使用すると常に成功しますDns.GetHostEntry

さて、奇妙なことは、同じ IP に対して nslookup が何も与えないことです。タイムアウトするか、エラーが発生します: UnKnown can't find 10.4.202.16: Non-existent domain。DNS サーバー (2008 R2) を調べると、逆引き参照ゾーンに PTR レコードが見つかりません。したがって、nslookup が失敗するという事実は、私をあまり驚かせません。

しかし、ここで何が起こっているのでしょうか? Dns.GetHostEntryHOSTNAME を取得するために文書化されていない方法を使用していますか?

4

2 に答える 2

0

私のラップトップでは少し異なりますが、これに遭遇しました。「レッドモンスター」と呼ばれています。私は、DNS 経由で IP アドレスを与えられた施設にいます。そして、nslookup を使用して IP アドレスを逆引きすると、「123.123.123.123-dns.organization.ch」のようなアドレスが得られます。しかし、GetHostEntry を使用して逆引きすると、"RedMonster.organization.ch" が返されます。これは、GetHostEntry がデフォルトの方法で実行されたときに何か「賢い」ことをしており、逆引きを行うためにローカル キャッシュを使用しているに違いないと私に思わせます。

システムに DNS を強制的に使用させる方法はわかりませんが、これは私が望んでいる方法です。

于 2015-09-18T22:04:07.753 に答える
0

これらのメソッドにはバグがあります: http://blog.tyang.org/2011/04/15/problem-with-dns-name-resolution-when-using-system-net-dns-class/の ソリューション 5 を使用することをお勧めします上の投稿。

于 2015-09-18T23:11:59.287 に答える