• ベストアンサー

LAN経由で他のPCのMACアドレスを調べることは可能でしょうか?

職場に存在する多数のPCのMACアドレスを、調べる方法を探しています。それらPCの利用者の邪魔にならないように、LAN経由でMACアドレスを調べることができたらと考えています。どうか方法をご存知の方は教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • outerlimit
  • ベストアンサー率26% (993/3718)
回答No.1

同一サブネット内でIPアドレスが既知ならば コマンドプロンプトで ping IPアドレス を実行後 arp -a を実行すれば IPアドレスとMACアドレスが表示されます arp -a > IP.txt とすれば IP.txtに結果が保存されます

papa_hgf
質問者

お礼

御礼が遅くなって申し訳ありません。大変助かりました。ありがとうございました。

その他の回答 (4)

  • Donotrely
  • ベストアンサー率41% (537/1280)
回答No.5

#2です。 問題はやったことがないので、arpキャッシュがどう挙動するか分からないことです。 というのはarpテーブルの登録は無いなら無いで動くからです。 ですからもしかして、arpテーブルのエントリ数というか容量というか、これに上限値があるかもしれない?し、 IPアドレスとMACアドレスの対応関係は、ネットワークの状況に応じ、 必ずしも固定的なものではないので、一定時間内に消える可能性があるかもしれない?し... 失敗するとしたらこの辺ですね。 だから、もしかしたらバッチファイルは ping 192.168.0.0 arp -a >>ファイル名 arp -d 192.168.0.0 ping 192.168.0.1 arp -a >>ファイル名 arp -d 192.168.0.1 ping 192.168.0.2 arp -a >>ファイル名 arp -d 192.168.0.2 ... ... ... ping 192.168.0.255 arp -a >>ファイル名 arp -d 192.168.0.255 みたいなのがいいかもしれません。 あるいはこれを#3さんみたいにループさせるとか。 っで、一番最初に、コマンドプロンプトから、 arp -d IPアドレス とやって【重要】arpテーブルを空っぽにしてからバッチファイルを実行します。 結果には、うまく行ったとしてもゴミが入ります。 Interface: 192.168.0.0 Internet Address Physical Address Type 192.168.0.0 xx-xx-xx-xx-xx-xx yyyy Interface: 192.168.0.1 Internet Address Physical Address Type 192.168.0.1 xx-xx-xx-xx-xx-xx yyyy Interface: 192.168.0.2 Internet Address Physical Address Type 192.168.0.2 xx-xx-xx-xx-xx-xx yyyy みたいになります。 またところどころ No ARP Entories Found も混入します。エディタで編集するしかないですね。

  • cz611cgy
  • ベストアンサー率56% (190/338)
回答No.4

更に楽をするために...expingというソフトが便利だと思います IPアドレスの範囲指定も可能ですし、PINGが成功時に任意の コマンドを実行できます 今回は使わないでしょうがPING失敗時にも任意のコマンドを実行できます

参考URL:
http://www.woodybells.com/
回答No.3

#2さんの補足になりますが、下記のようにbatファイル記述すると行数が少なくてすみます。 (MACアドレスを覚えておく期間は短いので、もしかすると1回の検索範囲を狭める必要があるかもしれません) for /L %f in (1,1,254) do ping -n 1 192.168.10.%f arp -a >list.txt for /L %f in (1,1,254) do ping -n 1 192.168.11.%f arp -a >>list.txt for /L %f in (1,1,254) do ping -n 1 192.168.12.%f arp -a >>list.txt ただし、ルータを介在している箇所が無いというのが前提条件です・・・。

  • Donotrely
  • ベストアンサー率41% (537/1280)
回答No.2

何とかして同一セグメントの全PCのコンピュータ名のリストを手に入れ、 これをテキストで編集し、 ping computername1 ping computername2 ・・・ ・・・ ・・・ というバッチファイルかコマンドファイル(拡張子は.batか.cmd)を作り実行。 コマンドプロンプトから arp -a >ファイル名 うまく行けば上記ファイルに入ります。 もし全PCのコンピュータ名のリストが手に入らなければ、 サブネットマスクを見て、アドレス範囲を全部並べればいいでしょう。 ex. サブネットマスクが255.255.255.0 アドレスが192.168.0.x なら、 ping 192.168.0.0 ping 192.168.0.1 ping 192.168.0.2 ・・・ ・・・ ・・・ ping 192.168.0.255 やったことないんでダメかもしれませんが。

関連するQ&A