ホスト名を取得し、IPアドレスをポップアップする方法(リバースDNSルックアップ)を見つけようとしています。
私はこれを考えましたが、他のLinuxディストリビューションで安全かどうかはわかりません。
nslookup $ip|grep "name ="|sed 's/^.*name = //'| sed '$s/\.$//'
大丈夫そうです。 nslookupを呼び出すと、次のようになります。
$ nslookup 127.0.0.1
Server: 192.154.28.100
Address: 192.154.28.100#53
1.0.0.127.in-addr.arpa name = localhost.
したがって、ホスト名が指定されていない行を削除するためにgrepを実行します。その後、 "name ="の前のすべての項目を削除し、最後に削除するために使用します。何らかの理由で複数の行がある場合は、最初の行のみを使用します。これにより「localhost」が提供されます。これを行うより良い方法が必要ですか?
答え1
nslookup
dig
ISCコマンドを好むあまり使用されていないコマンド。
を使用するには、dig
次のように書くことができます。
dig -x 127.0.0.1 +short
または、次のことができます。
perl -MSocket -le 'print((gethostbyaddr(inet_aton("127.0.0.1"), AF_INET))[0])'
情報を取得するには、システムのリゾルバを使用します(DNSだけでなく、/etc/hosts
DNS、NIS +、LDAP ...を使用することもできます)。/etc/nsswitch.conf
dig
nslookup
答え2
次のような出力を提供するホストコマンドを試すことができます。
$ host 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.