web-dev-qa-db-ja.com

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

IPアドレスを指定してコンピューターの名前を見つけるコマンドは何ですか?

私はいつもこのコマンドが何であるかを忘れていますが、Windowsに存在することを知っており、* nixコマンドラインに存在すると想定しています。

75
Peter Turner

DigおよびHostがあなたが探しているものであるはずです;)

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

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

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

Windowsでは、nslookupを使用します

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

59
Marc-Andre R.

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

Dig -x [address]
54
palehorse

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

 nslookup <ip-number EX: 127.0.0.1>

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

考えてみてください。nslookupはWindows XPで利用できませんか?

8
mdpc

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

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が提供するDNSサーバーではなくOSのDNSサーバーを使用するため、このDigベースのソリューションを使用します(ちなみに、 revdnsを呼び出すときに追加のDigフラグを追加でき、それらはDigに渡されます)

4
Hayden Schiff

「ホスト」を試す

  • 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 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.
    
3
StackzOfZtuff

私は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
3
jj33

Windowsでは、次のように使用する習慣をつけました。

ping -a <ip address>

これは、hostsファイルやWINSなどからのデータも反映します。

3
Dave Webb

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

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

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

1
squillman

パワーシェル:

[net.dns]::gethostentry("69.59.196.212").HostName
1
Richard

私はWindowsのコマンドラインDig(ここから入手できます: http://members.shaw.ca/nicholas.fong/Dig/ )をnslookupよりも好きです。

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

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

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

0
Cory J

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

0
Peter Turner

彼女は、より完全なDNS逆引きについて私の見解です。これがこのページの将来の閲覧者に役立つことを願っています。

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