2009-06-16 12 views
1

現在、以下のコードを使用して、指定されたIPAddressのDNS名を取得しています。ネットワーク内のIPAddressごとにIPAddressをフェッチするのではなく、DNSサーバーからすべてのDNSエントリ(IPAddress-HostNameマッピング)を一度に取得したいと考えています。出来ますか?もしそうなら、それを行う方法?JAVAアプリケーションからすべてのDNSエントリを取得する方法は?

InetAddress addr = InetAddress.getByName(address); 
dnsname = addr.getCanonicalHostName().trim(); 
+0

DNSサーバが設定され、それがたりないかもしれない可能性があり方法に応じて。あなたがしているのは、DNS AXFRリクエストです。 – Stobor

+0

"ネットワーク内の各IPAddress"をどのように定義しますか?あなたは本当にゾーン転送を探していますか、それとも何ですか? –

+0

ゾーン転送とは何かを学びました。はい、私はゾーン転送を探しています。 – Jay

答えて

2

パブリックDNSサーバーから、保持しているすべてのデータを取り出す方法はありません。すべてのIPアドレスを1つずつ列挙することが唯一の解決策です。

DNSサーバーとの特別な関係(たとえば、雇用主によって管理されている)の場合は、DNS管理者からゾーン全体(AXFRと呼ばれるDNS要求)を転送する権利を要求することができます。彼らはあなたのIPアドレスを認証するか、あなた自身を認証するためのTSIGキーを与えます。

次に、Javaでゾーン転送(TSIG認証あり)を行う方法を見つける必要があります。これらのキーワードを使用して、私はsome codedocumentationを見つける。使用例を見つけるには、Google Code SearchまたはKrugleのようなコード検索エンジンを使用してください。

[DNSの専門家は、おそらく「NSECの上を歩くの使用ゾーン」を叫ぶだろうが、ほとんどのDNSゾーンはNSECで署名されていません。]

+0

リンクをありがとう。リンクの初期読みといくつかのテストコードは、それが達成できることを示しています。私はまだTSIGキーでそれを試しています。私は成功すればここに投稿します。 – Jay

関連する問題