これをまとめてdns逆引きしたいと思っています。
Linux上で動くスクリプトまたはWindows上で動くソフトを教えてください。
テキストファイルの例
10.20.30.40
100.110.120.130
9.8.7.6
55.66.77.88
:
URLはダミーです。
以下のようなスクリプトで「lookup.sh ip.txt」のように引数にIPアドレスのテキストを指定すればnslookupが実行されます。
質問文からすると多分ローカルで実行するのだと思うのですが、外部のサーバー自浄での実行などは負荷の問題等でかねないのでご注意ください。
#!/bin/sh
for ADDRESS in `cat $1`
do
echo ”---- $ADDRESS ----”
nslookup $ADDRESS
done
?
ダミーです。
下記のような内容のテキストファイルを ip.bat といったような名前で保存しておいてMS-DOSプロンプト(コマンドプロンプト)で実行すれば、c:¥ip.txt に結果が入ります。
PING 10.20.30.40 >c:¥ip.txt
PING 100.110.120.130 >>c:¥ip.txt
PING 9.8.7.6 >>c:¥ip.txt
PING 55.66.77.88 >>c:¥ip.txt
上記のようなテキストに書き換えるにはExcelなどを使えば早いです。
pingではないです・・・
まぁping部分をnslookupに置き換えて実行すればいいんでしょうけど、
ホスト名以外にコマンドのメッセージが入るので、
ちょっと出力が扱いづらい・・・
入力が
10.20.30.40
100.110.120.130
9.8.7.6
55.66.77.88
で出力が
aaa.aaa.aaa
bbb.bbb.bbb
ccc.ccc.ccc
ddd.ddd.ddd
のようにホスト名だけを得たいのです。
http://www.hatena.ne.jp/user?userid=walrus
walrusさんのプロフィール - はてな
URLはダミーです。
最初にnslookupの例を挙げましたが、ほしい出力形式が上のようなものであれば、次のようにしてください。
#!/bin/sh
for ADDRESS in `cat $1`
do
nslookup $ADDRESS | grep ”Name:” | sed -e ”s/ */ /g” | cut -d ” ” -f 2
done
ありがとうございます。
Perl を使うと以下のような感じで実現できると思います。
(いずれも ip.txt が元の変換元の IP アドレスの羅列が入っているファイルで、結果が host.txt に出力されます。)
Linux (bash) の場合
perl -ne ’print gethostbyaddr(pack(”C4”, split(/¥./, $_)), 2) || $_, ”¥n”;’ < ip.txt > host.txt
Windows コマンドプロンプト + ActivePerl の場合
perl -ne ”print gethostbyaddr(pack(q(C4), split(/¥./, $_)), 2) || $_, qq(¥n);” < ip.txt > host.txt
どちらでもうまくいかない場合は、以下の3行のスクリプトを ip2host.pl とかで保存して、perl ip2host.pl < ip.txt > host.txt とすれば良いでしょう。
foreach (<>) {
print gethostbyaddr(pack(”C4”, split(/¥./, $_)), 2) || $_, ”¥n”;
}
(はてなは円マークとかダブルクォーテーションとかを全角に変換して掲載してしまうようなので、実際にコマンド入れる時は半角に置き換えてください)
ありがとうございます。
レッツPHP!
PHPでのIP⇔ドメイン変換のスクリプトです。
このままでは一つ一つ入力しないといけませんが、PHPが分かるのであれば自作してみては?
どうも。
http://e-realize.com/softlib/netenum/netenum.htm
株式会社リアライズ 富山のシステム開発
試していませんが、WINのフリーソフトです。
色々な機能がついているので返って面倒かも?
みてみます。
皆さんありがとうございました。
どうも。
早速試してみます。