IPアドレス -> MACアドレスの変換表を取得できるarpコマンドというものがあるのでこれを利用します。 "arp - a"でネットワーク上のすべて端末のIPアドレスとMACアドレスを取得できますが、取得できる変換テーブルは、新しく接続した端末が存在していなかったり、切断した端末が残ったままだったりして、使い勝手が悪いです。 そこで、LAN内のすべてのIPアドレスにpingを打ち、レスポンスがあったIPアドレスにのみarp [ip]を実行し、そのIPアドレスのMACアドレスを一つずつ取得していく方法にします。 以下、Rubyで作ったプログラムです。 pingメソッドでは、待ち時間を1秒に設定しpingを1回だけ打ちます。 実行結果で1パケット以上通っていたらtrueを返しています。 arpメソッドでは、arp [ip]を実行します。もしそのIPの端末が存在していれば、"? (x.x.x.
![LAN内のすべての端末のIPとMACアドレスを収集 - さいたま産エンジニアの覚え書き](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)