ネットワーク上で使用しているIPアドレスを自動で調べる方法

DOSプロンプトから以下のコマンドで指定した範囲(ここでは 1〜255)でpingを行います。

for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.1.%i && arp -a 192.168.1.%i >> out.log


結果はこんな感じ

Interface: 192.168.1.2 on Interface 0x1000005
  Internet Address      Physical Address      Type
  192.168.1.200         00-00-00-00-00-00     invalid   

Interface: 192.168.1.2 on Interface 0x1000005
  Internet Address      Physical Address      Type
  192.168.1.201         00-90-xx-xx-bf-67     dynamic  ←使われている

Interface: 192.168.1.2 on Interface 0x1000005
  Internet Address      Physical Address      Type
  192.168.1.202         00-90-xx-xx-c0-93     dynamic  ←使われている

cygwinとかでgrepしてやるとわかりやすかった…

Administrator@mypc /cygdrive/c/working
$ cat out.log | grep dynamic
  192.168.1.1           00-80-xx-xx-9a-ed     dynamic
  192.168.1.201         00-90-xx-xx-bf-67     dynamic
  192.168.1.202         00-90-xx-xx-c0-93     dynamic