人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

テキストファイルにIPアドレスが入っています。(1行に1IP)
これをまとめてdns逆引きしたいと思っています。
Linux上で動くスクリプトまたはWindows上で動くソフトを教えてください。

テキストファイルの例
10.20.30.40
100.110.120.130
9.8.7.6
55.66.77.88

●質問者: bar77
●カテゴリ:コンピュータ
✍キーワード:DNS IP IPアドレス Linux Windows
○ 状態 :終了
└ 回答数 : 7/7件

▽最新の回答へ

1 ● walrus
●50ポイント

http://www.hatea.ne.jp/

URLはダミーです。

以下のようなスクリプトで「lookup.sh ip.txt」のように引数にIPアドレスのテキストを指定すればnslookupが実行されます。

質問文からすると多分ローカルで実行するのだと思うのですが、外部のサーバー自浄での実行などは負荷の問題等でかねないのでご注意ください。

#!/bin/sh

for ADDRESS in `cat $1`

do

echo ”---- $ADDRESS ----”

nslookup $ADDRESS

done

◎質問者からの返答

どうも。

早速試してみます。


2 ● makita
●3ポイント

http://www.woodybells.com/exping.html

ExPing

Windows用ソフトです。

こちらのソフトのTracerouteでどうでしょうか?

◎質問者からの返答


3 ● kn1967
●5ポイント

http://www.hatena.ne.jp/

はてな

ダミーです。

下記のような内容のテキストファイルを 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

のようにホスト名だけを得たいのです。


4 ● walrus
●20ポイント

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

◎質問者からの返答

ありがとうございます。


5 ● まきのっぴ
●50ポイント

http://www.rfs.jp/sitebuilder/perl/05/func/gethostbyaddr.htm...

302 Found

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”;

}

(はてなは円マークとかダブルクォーテーションとかを全角に変換して掲載してしまうようなので、実際にコマンド入れる時は半角に置き換えてください)

◎質問者からの返答

ありがとうございます。


1-5件表示/7件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ