リバースDNSコマンドラインユーティリティとは何ですか?


回答:


56

dighostはあなたが探しているものでなければなりません;)

http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html

* nixシステムでは、次のコマンドを実行できます。 dig -x [address]

または+shortdigコマンドの最後に追加して、dnsの結果のみを出力できます。

Windowsでは、次を使用しますnslookup

編集:nslookupは* nixシステムでも動作します。nslookupコマンドの詳細については、しばらく前から置き換えられているようです。http//linuxreviews.org/man/nslookup/


同じ構文はdrill、ldns のユーティリティでも機能します。つまり、drill -x 123.123.123.123
Tullo_x86

52

* nixでは次を使用できます。

dig -x [address]

16
これは間違いなく最も簡単な方法のようです。最後に+ shortを追加すると、rdnsの結果のみが返されます。dig -x [address] +short
ColinM

3
その+shortフラグは本当に便利です!
ニール

これはIPv6アドレスで機能しますか?
ジェレミア

@ColinM良い点。これに基づいて回答を編集しました。ありがとう!
マークアンドレR.

はい、@ Geremia、によるとman digaddrはドット付き10進表記のIPv4アドレス、またはコロンで区切られたIPv6アドレスです。
リカルド

8

私が知っているほとんどのLinuxシステムでは、以下を使用できます。

 nslookup <ip-number EX: 127.0.0.1>

コマンドラインで動作します。

考えてみると、nslookupはWindows XPで利用できませんか?


はい、確かに。そして、以前のバージョンのWindows。
クバンチク2009

4

この質問にはすでに100万の回答がありますが、もう1つ追加します。digで逆DNSを簡単に行うために書いた小さな関数を次に示します。これを~/.bashrcファイルに追加し、シェルをリロードすると、次のようにして逆引きDNSルックアップを実行できますrevdns 1.2.3.4

function revdns() {
    octets=""
    addr="in-addr.arpa"

    # split the IP address into an array of octets
    IFS="." read -r -a octets <<< "$1"

    # add each octet to our $addr string in reverse order
    for octet in "${octets[@]}"; do
         addr=$octet"."$addr
    done

    # run a DNS pointer lookup with dig
    # `+short` makes dig's output very terse (un-verbose)
    # `"${@:2}"` passes any extra params from this command to dig
    dig ptr +short $addr "${@:2}"
}

逆引きDNSルックアップは、ポインター(PTR)レコードをチェックすることによって行われます。「1.2.3.4」の逆引きDNSを実行する場合は、「4.3.2.1.in-addr.arpa」のポインターレコードを検索する必要があります。私の関数はIPアドレスを取得し、オクテットの順序を逆にし(つまり、1.2.3.4から4.3.2.1に変更し)、次にdig説明したPTRルックアップの実行に使用します。

もちろん、nslookup 1.2.3.4持っていれば使用できますが、nslookupが提供するものの代わりにOSのDNSサーバーを使用するため、この掘りベースのソリューションを好みます(必要に応じて、追加の掘りフラグを追加できます)を呼び出すrevdnsと、彼らは発掘に渡されます)


その助けによるdig -x dot-notationと、「逆引きのショートカット」です。長いバージョンはどうなるのだろうと思っていました。説明してくれてありがとう!:)
webwurst

from man dig-xを使用する場合、名前、クラス、およびタイプの引数を指定する必要はありません。digは、94.2.0.192.in-addr.arpaなどの名前のルックアップを自動的に実行し、クエリタイプとクラスをそれぞれPTRとINに設定します。
リカルド

3

私はdig / host / nslookupがこれらの標準ツールであることをよく知っていますが、OSの解像度をテストするためにこれらを保持します(本質的に、nsswitch.confが正しく動作することをテストするため):

gethostbyname:

#!/usr/bin/perl

use Socket;

my @t = gethostbyname($ARGV[0]);
print "\$name     = $t[0]\n"; shift(@t);
print "\$aliases  = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length   = $t[0]\n"; shift(@t);

foreach (@t) {
  print "          = ", inet_ntoa($_), "\n";
}

gethostbyaddr:

#!/usr/bin/perl

use Socket;

my @t = gethostbyaddr(inet_aton($ARGV[0]), AF_INET);
print "\$name     = $t[0]\n"; shift(@t);
print "\$aliases  = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length   = $t[0]\n"; shift(@t);

foreach (@t) {
  print "          = ", inet_ntoa($_), "\n";
}

例:

g3 0 /home/jj33/swap > gethostbyname www.google.com
$name     = www.l.google.com
$aliases  = www.google.com
$addrtype = 2
$length   = 4
          = 72.14.205.147
          = 72.14.205.103
          = 72.14.205.104
          = 72.14.205.99
g3 0 /home/jj33/swap > gethostbyaddr 72.14.205.147 
$name     = qb-in-f147.google.com
$aliases  = 
$addrtype = 2
$length   = 4
          = 72.14.205.147

4
「getent hosts [IP or HOSTNAME]」
hayalci 09年

うーん...私はもともと関数で遊ぶためだけにツールを書いたので、そこに損失はありませんが、もしgetentツールについて知っていたなら、間違いなくserverfaultに貼り付けなかっただろう。ポインターをありがとう。
jj33 09年

-1:これらはIPv4に制限され、gethostbynameはIPv6アドレスが存在する場合は取得せず、gethostbyaddrはIPv6アドレスを受け入れません。
ボルツマイヤー

これらの機能は長年廃止されています。これが書かれたとき、彼らは時代遅れでさえありました。perlおよび他のほとんどの言語では、getaddrinfoおよびgetnameinfoを使用する必要があります。
マイケルハンプトン

3

Windowsでは、以下を使用する習慣がありました。

ping -a <ip address>

hostsファイルやWINSなどからのデータも反映されるためです。


2

「ホスト」を試してください

  • 前方参照host

    $ host google-public-dns-b.google.com.
    google-public-dns-b.google.com has address 8.8.4.4
    google-public-dns-b.google.com has IPv6 address 2001:4860:4860::8844
    
  • を使用した逆ルックアップhost

    $ host 8.8.4.4
    4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
    

digに似ています

  • 前方参照dig

    $ dig google-public-dns-b.google.com. +short
    8.8.4.4
    
  • を使用した逆ルックアップdig

    $ dig -x 8.8.4.4 +short
    google-public-dns-b.google.com.
    

1

nslookupを使用している場合はこれです(問題のIPとして192.168.0.1を想定)

> set type=ptr
> 1.0.168.192.in-addr.arpa

編集: IP用に作成されたPTRレコードがある場合にのみ逆ルックアップが機能することを忘れないでください、あなたが探しているホスト名を返すことは保証されていません。状況に応じてDNSがどのように構成および維持されるかに完全に依存しています。


5
nsloookupは保守されなくなり、作成者はdigを推奨しています。また、dig -xは、バイトを自分で反転するよりもはるかに簡単です。
ボルツマイヤー09年

知っておくといい、入力してくれてありがとう!古い習慣は一生懸命に死にます;)
squillman


0

さて、nslookupを書いたばかりのフレンドリーな人がコマンドであり、彼は正しい。UnixとWindowsの両方で動作します。答えを削除した理由はわかりませんが、正解です。


エラー、多分そうではありません。
ピーターターナー

ええ、私は少し速く投稿しましたが、チェックの後、回答のすべてがわからなかったので、投稿を戻し、編集して詳細を追加しました;)
Marc-Andre R.

確かにそうですが、私はその答えを受け入れていません。残念なことに、ここではリアルタイムのGoogley AJAXを取得できません。
ピーターターナー

うまくええ笑、私たちはすべてを持っていることはできません。)素敵な一日を、私はあなたを助け願っています;)
マルク・アンドレ・R.

0

nslookupよりも、Windows用のコマンドラインdig(http://members.shaw.ca/nicholas.fong/dig/)が好きです。

WindowsワークステーションからDNSをテスト/管理する必要がある場合は、このツールを入手してください。次に:

C:\dig>dig -x <IP Address>

...また、パスにc:\ digを追加することを忘れないでください!


0

彼女は、より完全なDNS逆ルックアップについての私の見解です。これがこのページの今後の視聴者に役立つことを願っています。

for ip in {1..254..1}; do dig -x 1.1.1.$ip | grep $ip >> dns.txt; done;

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.