IPアドレスからホスト名を調べたい~BATファイルを実行してもらう

遠隔地の拠点でネットワークトラブルがあり、ログを収集したところIPアドレスは記録されている事が分かった。しかしIPアドレスの割当はDHCPで行っており、また複数の会社で共同利用しているネットワークなので、接続されているPCを把握出来ていない。

ログの収集と同じタイミングで、NBTSTATコマンドを実行して調査をすれば当該IPアドレスのホスト名を突き止めることが出来るが、拠点のユーザーにはあまり手間をかけさせたくないので、BATファイルを作ることにした。

実行するコマンドを記したBATファイル

REM ログファイルの定義
set logfile=%HOMEPATH%\Desktop\logfile.txt

REM カレントディレクトリをデスクトップに移動
cd %HOMEPATH%\Desktop

REM 処理前の準備(ログファイル作成)
echo ログスタート > %logfile%

REM 外部ファイルを読み込んでループ処理
for /f "delims=" %%a in (list.txt) do (
    echo ---target--- %%a >> %logfile%
    nbtstat -A %%a >> %logfile%
)

対象とするIPアドレスをリスト

192.168.0.100
192.168.0.105
192.168.0.200
192.168.0.210

この2つのファイルを、デスクトップに置いて、BATファイル(load-list.bat)を実行してもらう。するとデスクトップに「logfile.txt」というコマンドの実行結果が得られる。

BATファイルの置き場所(PATH)を自動的に認識させる方法もあったと思うが、面倒なので「デスクトップ」に置いて実行という条件のもとに簡単に作成した。

処理的には一切複雑な事をせず、洗練されていないのでコマンドを実行した結果がログファイルに記されるだけ。それでも遠隔地で(リモート操作は制限されているので不可)実行したいコマンドを簡単に処理させてもらえるので、ユーザーにも指示(依頼)しやすく、こちらとしても知りたい結果が得られる。

実行(収集)結果は電子メールに添付して送り返して貰った。

BATファイルで別ファイル(リスト)を読み込む手法は、応用が利くので利便性は高いと思われる。カンマ区切りにも対応出来るので、詳しくはbatファイル内でfor文を使う事例を検索すると良いでしょう。

私はプログラマーでは無いので複雑な事よりも、手早く結果がえられるシンプルさを優先します。リストからIPアドレスを一行ずつ読み込んで変数に取り込んで実行するだけのループ処理でも十分使えると思っています。

コメント

タイトルとURLをコピーしました