それぞれにSSHを実行するのではなく、ネットワーク上のすべてのマシンのMACアドレスを見つける簡単な方法はありますかifconfig | grep HWaddr
ネットワークに300台のマシンがある場合、簡単な解決策が本当に必要です。
nmap を使用して、pingスキャンを実行できます。
nmap -sP 192.168.254.*
Starting Nmap 5.00 ( http://nmap.org ) at 2011-03-09 11:32 GMT
Host xyzzy.lan (192.168.254.189) is up (0.00022s latency).
MAC Address: 00:0C:29:5B:A5:E0 (VMware)
Host plugh.lan (192.168.254.196) is up (0.00014s latency).
MAC Address: 00:0C:29:2E:78:F1 (VMware)
Host foo.lan (192.168.254.200) is up.
Host bar.lan (192.168.254.207) is up (0.00013s latency).
MAC Address: 00:0C:29:2D:94:A0 (VMware)
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.41 seconds
編集:
出力をIP-> MACにフィルターするsedスクリプト-これをファイルに入れます。
/^Host.*latency.*/{
$!N
/MAC Address/{
s/.*(\(.*\)) .*MAC Address: \(.*\) .*/\1 -> \2/
}
}
/[Nn]map/d
s/^Host .*is up/& but MAC Address cannot be found/
このように使用します
nmap -sP 192.168.254.0/20 | sed -f sedscript
192.168.254.189 -> 00:0C:29:5B:A5:E0
192.168.254.196 -> 00:0C:29:2E:78:F1
Host foo.lan (192.168.254.200) is up but MAC Address cannot be found.
192.168.254.207 -> 00:0C:29:2D:94:A0
Nmapを使用します。ルートとして実行して、MACアドレスを取得することが重要です。例:
Sudo nmap -sP 192.168.1.0/24
192.168.1.1-192.168.1.255をスキャンします。このサブネット表記に慣れていない場合は、wikiでCIDR表記を調べてください。
最近のLinuxディストリビューションのリポジトリからnmapを取得できるはずです。
Sudo apt-get install nmap
または
Sudo yum install nmap
私のネットワークからのサンプル出力:
Host 192.168.1.1 is up (0.0069s latency).
MAC Address: 00:0D:54:9B:D8:F4 (3Com)
Host 192.168.1.78 is up (0.0068s latency).
MAC Address: 00:0C:29:BC:3D:1C (VMware)
Host 192.168.1.91 is up (0.0038s latency).
MAC Address: 00:0C:29:8A:F4:A3 (VMware)
Host 192.168.1.92 is up (0.0039s latency).
MAC Address: 00:0C:29:65:60:5F (VMware)
Host 192.168.1.158 is up (0.033s latency).
MAC Address: 00:0C:29:82:24:EA (VMware)
Host 192.168.1.186 is up (0.0024s latency).
MAC Address: 00:0C:29:3E:26:1F (VMware)
Host 192.168.1.190 is up (0.0066s latency).
次のコマンドを試してください:
arp-scan --interface=eth0 192.168.1.0/24
同じネットワークセグメント内のホストからこのコマンドを実行している限り、nmap
は、各ホストが検出したすべてのMACアドレスを報告します。
例えば:
Sudo nmap 192.168.1.0/24 -sP
Starting Nmap 4.76 ( http://nmap.org ) at 2011-03-09 06:29 EST
Host old.net (192.168.1.1) appears to be up.
MAC Address: 00:18:39:C5:A1:DC (Cisco-Linksys)
MACアドレスについては、Ubuntuボックスでrootになる必要があります。また、単一のホストの簡単な方法は、それをpingし、arp -a
でarpテーブルを確認することです。これは、ディストリビューションの初期インストールに通常含まれるコマンドのみを使用する場合です。
arp -a | grep -v incomplete
foo.net (192.168.1.145) at 00:0d:4b:6a:2c:cb [ether] on eth0
LANトポロジによっては、スイッチにMACアドレステーブルを表示するのが最善の方法です。
したがって、たとえば、スイッチインフラストラクチャがシスコの場合、
sh mac address-table
すべてのスイッチで。
多くのスイッチがある場合は、 [〜#〜] snmp [〜#〜] を使用してこのタスクを自動化できます。
別のオプションと、トポロジーとネットワーク機器の種類に応じて、ルーターのarpテーブルを表示しているデバイスのMACアドレスを取得することもできます。
この2つの方法のいずれかを使用すると、ネットワークインフラストラクチャに接続されているデバイス(PC、プリンター、アクセスポイントなど)のMACアドレスのリストも取得できます。最初のケースでは、IPアドレスのないデバイスも含まれます。これはあなたが望むことかもしれませんし、そうでないかもしれませんが、試してみる価値があるかもしれません。
ネットワーク内のマシンへのsshについて説明したので、次の方法を使用することもできます。
nmap -p 22 10.100.10.0/24 >/dev/null ; arp -a
多分arp-scanもオプションです:
ここで例を参照してください: Arp-scanユーザーガイド
あなたはSIWと呼ばれるプログラムを使用することができ、それは無料であり、アクセス許可や引数を必要としないネットワークをスキャンします。
.exeまたはフルインストールで利用可能。