ネットワーク上のすべてのマシンのMACアドレスを見つける方法


31

それぞれにSSHを実行するのではなく、ネットワーク上のすべてのマシンのMACアドレスを見つける簡単な方法はありますかifconfig | grep HWaddr。ネットワーク上に300のマシンがある場合、簡単な解決策が本当に必要です。


2
完全を期すために:arp -n 0.0.0.0ここで、0.0.0.0はデバイスのIPアドレスです。一度に1つずつ検索することに注意してください。1つだけが必要な場合もありますが、これは各ボックスに投入するよりも確かに高速です。Windowsボックスまたはプリンターの場合はどうなりますか?
d -_- b

2
sudo arp-scan --localnet
シルバームーン

回答:


34

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への出力をフィルタリングするsedスクリプト-> MAC-これをファイルに入れます。

/^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

はい、これは私が探していたものです。他のメッセージも読んでいますが、それはシスコのスイッチではありません。
登録ユーザー

1
MACアドレスを表示する唯一の方法は、nmapをrootとして実行することであることがわかりました。また、sedscriptが機能しなくなったようです。[IPアドレスの近くのテキストが変更されました。
僧ks

192.168.1.147ホストのNmapスキャンレポートがアップしています(0.00045sレイテンシ)。MACアドレス:XX:XX:XX:XX:XX:XX
monksy

16

nmapを使用します。MACアドレスを取得するために、rootとして実行することが重要です。例:

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).

はい、あなたの方法は非常に簡単な方法です。
登録ユーザー

7

同じネットワークセグメント内のホストからこのコマンドを実行する限り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ボックスのルートである必要があります。また、単一ホストの単純な方法は、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

7

このコマンドを試してください:

arp-scan --interface=eth0 192.168.1.0/24

これは本当に古い質問です。ただし、nmapはMACアドレスを提供しませんでした。arp-scanが行いました。ありがとう。
MikeP

5

LANトポロジによっては、スイッチのMACアドレステーブルを表示するのが最善の方法かもしれません。

たとえば、スイッチインフラストラクチャがシスコの場合、

sh mac address-table

すべてのスイッチで。

多数のスイッチがある場合は、SNMPを使用してこのタスクを自動化できます

別のオプションとして、(再び)トポロジとネットワーク機器のタイプに応じて、ルーターのarpテーブルを表示するデバイスのMACアドレスを取得しようとすることもできます。

この2つの方法のいずれかを使用すると、ネットワークインフラストラクチャに接続されているすべてのデバイス(PC、プリンター、アクセスポイントなど)のMACアドレスのリストも取得できます。最初の場合、IPアドレスのないデバイスでも。これはあなたが望んでいるかもしれないかもしれませんが、試してみる価値はあります。



1

ネットワーク内のマシンへのsshについて述べたので、この略語も使用できます。

nmap -p 22 10.100.10.0/24 >/dev/null ; arp -a

0

SIWと呼ばれるプログラムを使用できます。これは無料で、権限や引数を必要としないネットワークをスキャンします。

URL:http : //www.gtopala.com/

.exeまたはフルインストールで利用可能。


。EXE?タグは、 "Linuxの-Netowrking"と言う
D -_- B
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.