- ベストアンサー
LAN経由で他のPCのMACアドレスを調べることは可能でしょうか?
職場に存在する多数のPCのMACアドレスを、調べる方法を探しています。それらPCの利用者の邪魔にならないように、LAN経由でMACアドレスを調べることができたらと考えています。どうか方法をご存知の方は教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
同一サブネット内でIPアドレスが既知ならば コマンドプロンプトで ping IPアドレス を実行後 arp -a を実行すれば IPアドレスとMACアドレスが表示されます arp -a > IP.txt とすれば IP.txtに結果が保存されます
その他の回答 (4)
- Donotrely
- ベストアンサー率41% (537/1280)
#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)
更に楽をするために...expingというソフトが便利だと思います IPアドレスの範囲指定も可能ですし、PINGが成功時に任意の コマンドを実行できます 今回は使わないでしょうがPING失敗時にも任意のコマンドを実行できます
- 参考URL:
- http://www.woodybells.com/
- takepon256
- ベストアンサー率41% (391/936)
#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)
何とかして同一セグメントの全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 やったことないんでダメかもしれませんが。
お礼
御礼が遅くなって申し訳ありません。大変助かりました。ありがとうございました。