come scoprire gli indirizzi mac di tutte le macchine in rete


31

C'è un modo semplice per scoprire l'indirizzo mac di tutte le macchine sulla mia rete piuttosto che fare un SSH in ciascuna e ifconfig | grep HWaddrse ci sono 300 macchine sulla rete ho davvero bisogno di una soluzione semplice.


2
Per completezza: arp -n 0.0.0.0 Dove 0.0.0.0 è l'indirizzo IP del dispositivo. Tieni presente che dovrai comunque cercare uno alla volta. A volte ne vuoi solo uno, e questo è sicuramente più veloce dell'estrazione su ogni scatola. Cosa succede se si tratta di una scatola o stampante Windows?
d -_- b

2
sudo arp-scan --localnet
Silver Moon

Risposte:


34

È possibile utilizzare nmap per eseguire una scansione 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

Modificare:

Uno script sed per filtrare l'output su IP -> MAC - inserendolo in un file.

/^Host.*latency.*/{
    $!N
    /MAC Address/{
        s/.*(\(.*\)) .*MAC Address: \(.*\) .*/\1 -> \2/
    }
}  
/[Nn]map/d
s/^Host .*is up/& but MAC Address cannot be found/

e usalo in questo modo

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

sì, questo è quello che stavo cercando, ho letto altri messaggi, inoltre non è un interruttore Cisco, grazie per tutti i messaggi.
Utente registrato

1
Ho scoperto che l'unico modo per visualizzare gli indirizzi mac è eseguire nmap come root. Inoltre sembra che il sedscript non funzioni più. [Il testo vicino all'indirizzo IP è cambiato.
monksy

Rapporto di scansione Nmap per 192.168.1.147 L'host è attivo (latenza di 0.00045s). Indirizzo MAC: XX: XX: XX: XX: XX: XX
monksy

16

Usa nmap. Importante eseguirlo come root in modo da ottenere gli indirizzi MAC. Esempio:

sudo nmap -sP 192.168.1.0/24 

Scansionerà 192.168.1.1 - 192.168.1.255. Cerca la notazione CIDR sul wiki se non hai familiarità con questa notazione di sottorete.

Dovresti essere in grado di ottenere nmap dai repository di qualsiasi distribuzione Linux recente, ad es

sudo apt-get install nmap

o

sudo yum install nmap

Un esempio di output dalla mia rete:

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

Sì, il tuo metodo è abbastanza semplice.
Utente registrato

7

Finché si esegue questo comando da un host nello stesso segmento di rete, nmapverrà segnalato tutto l'indirizzo MAC per ogni host scoperto.

Per esempio:

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)

Per gli indirizzi MAC ho bisogno di essere root sul mio Ubuntu box. Inoltre, un metodo semplice per un singolo host è solo quello di eseguire il ping e guardare la tabella arp arp -ase si desidera utilizzare solo i comandi normalmente inclusi nell'installazione iniziale di una distribuzione:

arp -a | grep -v incomplete
foo.net (192.168.1.145) at 00:0d:4b:6a:2c:cb [ether] on eth0

7

Prova questo comando:

arp-scan --interface=eth0 192.168.1.0/24

So che questa è una domanda davvero vecchia. Tuttavia, nmap non mi ha fornito alcun indirizzo MAC. lo ha fatto arp-scan. Grazie.
MikeP,

5

A seconda della topologia LAN, la soluzione migliore potrebbe essere quella di visualizzare la tabella degli indirizzi MAC sugli switch.

Ad esempio, se la tua infrastruttura di switch è Cisco, puoi provare a

sh mac address-table

su ogni interruttore.

Se si dispone di molti switch, è possibile automatizzare questa attività tramite SNMP .

Un'altra opzione e (di nuovo) a seconda della topologia e del tipo di apparecchiatura di rete in uso, è possibile anche provare a ottenere gli indirizzi mac dei dispositivi che visualizzano la tabella arp sui router.

Con uno di questi due metodi otterrai anche l'elenco degli indirizzi mac di tutti i dispositivi collegati alla tua infrastruttura di rete: PC, stampanti, punti di accesso, ecc. Nel primo caso, anche di dispositivi senza un indirizzo IP. Questo può o non può essere quello che vuoi, ma può valere la pena provarlo.



1

Dato che hai parlato di ssh nelle macchine della tua rete, puoi anche usare questo shorty:

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

0

È possibile utilizzare un programma chiamato SIW, è gratuito e scansiona la rete senza autorizzazioni o argomenti.

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

Disponibile in .exe o installazione completa.


.EXE? Il tag dice "Linux-Netowrking"
d -_- b
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.