特定のMACアドレスを持つ機器のIPアドレスを調査するバッチファイル

MACアドレスからIPアドレス

MACアドレスがわかれば、その機器が持つIPアドレスを探すことができます。

手順

  1. 捜査対象となるセグメントを調べる
  2. 捜査対象となるセグメントにまんべんなくPINGを打つ
  3. MACテーブルを表示させる
  4. 特定のMACアドレスを探す

DOSコマンドのバッチファイルで、これを自動化したかったのですが、へたれなので、2~4までの手順を自動化する事ができました。

操作対象となるセグメントを調べる

ipconfig |findstr "IPv4 アドレス.*"

ipconfig コマンドで、自分が取得しているNICのIPアドレスを表示します。環境によって、IPv4 アドレスという表記でない場合があります。

捜査対象のセグメント入力

PINGを打ちたい範囲のネットワークアドレスを指定します。

SET INPUTSTR=

SET /P INPUTSTR=

変数INPUTSTR へ、ネットワークアドレスを格納します

PINGを打つ

対象のネットワークに対して、 1~254へPINGを打ちます。

for /l %%A in (1,1,254) do (ping -n 1 -w 200 %INPUTSTR%.%%A)

特定のMACアドレスを探す

arp -a | findstr "50-c4-dd-.*"

ベンダーによって、持っているMACアドレスの範囲が決まっているため、このNICを搭載している機器というような形で特定する事ができます。

バッチファイル

できれば、自分のNICのアドレスを判定して、そのネットワークへPINGを打つというものにしたかったのですが、文字列操作がめんどくさそうだったのでセグメントは入力いただく方とで作りました。

ECHO OFF
ECHO お使いのネットワーク環境は
ipconfig |findstr "IPv4 アドレス.*"

ECHO.

REM セグメントを入力
SET INPUTSTR=

ECHO +++++++++++++++++++++++++++++++++++++++++++++++++++++
ECHO セグメントを *.*.* の形式で入力してください
ECHO 例 192.168.0
ECHO +++++++++++++++++++++++++++++++++++++++++++++++++++++++

SET /P INPUTSTR=

echo.
echo セグメント %INPUTSTR% へPINGを打ちます

REM MACテーブル作成のため指定セグメントへPINGを打
for /l %%A in (1,1,254) do (ping -n 1 -w 200 %INPUTSTR%.%%A)

ECHO.

REM 50-c4-dd- から始まるNICのIPアドレスを調べる
ECHO ++++++++++++++++++++++++++++++++++++++++++++++++++++
ECHO 見つかったアドレスは
ECHO ++++++++++++++++++++++++++++++++++++++++++++++++++++
arp -a | findstr "fa-5f-37-.*"

pause

実行するとこんな感じです。

++++++++++++++++++++++++++++++++++++++++++++++++++++
見つかったアドレスは
++++++++++++++++++++++++++++++++++++++++++++++++++++
  192.168.100.111        fa-5f-37-??-??-??     動的

Win10のメモ帳はUTF-8だけ?バッチ実行時文字化けするけど

バッチファイルを作成するのに、Windows標準のメモ帳を利用していました。

バッチファイルを実行すると、コマンドプロンプトで表示される文字列が文字化けし、うまく動作しません。

あー、DOSコマンドはUTF8で文字エンコードしないとだめなのかなと思って、名前をつけて保存しようと思いましたら、あれ、メモ帳の保存はUTF8になってる。

しかも Shift_JIS選べません。

emeditor というエディタソフトをダウンロードインストールし、Shit_JISを選択して保存して、バッチファイルを実行したところ、ちゃんと実行できるようになりました。

まったく何なんだか。試しに

set LANG=ja_JP.UTF-8

を言語設定を入れてみましたが、状況は変わらずで

DOSのバッチファイルは、Shift-_JISしか日本語受け付けないの?って感じです。メモ帳はShift-JISで保存できなくなってるので、なんだか対応がちぐはぐな気がします。