Elencare tutti gli indirizzi MAC e gli indirizzi IP associati nella mia rete locale (LAN)


84

Come posso elencare tutti gli indirizzi MAC e i loro indirizzi IP associati delle macchine connesse alla mia rete locale (LAN)?


6
è importante capire che non appena si passerà attraverso un'attrezzatura a livello di rete di livello 3, non sarà possibile ottenere MAC e IP dietro questa attrezzatura
Kiwy,

Perché posizioni !dopo un punto interrogativo? Non è necessario e viene utilizzato solo nei casi in cui la domanda viene formulata o di grande importanza.
Kiri,

@ minerz029 grazie per aver chiarito che
Maythux

1
sudo tail -f /var/log/messages, quindi scollegare e ricollegare il dispositivo di cui si sta tentando di trovare l'indirizzo MAC o grep / leggere i messaggi per trovare il dispositivo.
IceArdor

Risposte:


63

È possibile utilizzare l' utilità Nmap per questo. Nmap è un'utilità gratuita per scanner di rete.

Prova solo:

sudo nmap -sn 192.168.1.0/24

Sostituire l'identificatore di rete e la maschera di sottorete.

Come trovare un ID di rete e una subnet mask

Usa il comando ip a:

bash~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether c4:85:08:94:ee:9a brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0
    inet6 fe80::c685:8ff:fe94:ee9a/64 scope link valid_lft forever preferred_lft forever

Qui al punto 2, ho il wlan0dispositivo. Si dice inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0, l'indirizzo IP: 192.168.3.66, subnet mask: 24. L'ID di rete è 192.168.3.0, basta sostituire l'ultimo numero con 0.

O come nmapdice l' uomo :

sudo nmap -sn 192.168.1.0/24

Ecco una piccola citazione dalla pagina man, nmap (1) :

-sn (No port scan)

Questa opzione dice a Nmap di non eseguire una scansione delle porte dopo il rilevamento degli host e di stampare solo gli host disponibili che hanno risposto alla scansione. Questo è spesso noto come "ping scan", ma è anche possibile richiedere l'esecuzione di script traceroute e host NSE.

Questo è di default un passo più invadente della scansione dell'elenco e può spesso essere usato per gli stessi scopi. Consente una leggera ricognizione di una rete target senza attirare molta attenzione.

Sapere quanti host sono attivi è più prezioso per gli aggressori rispetto all'elenco fornito dalla scansione dell'elenco di ogni singolo indirizzo IP e nome host.

Anche gli amministratori di sistema ritengono utile questa opzione. Può essere facilmente utilizzato per contare le macchine disponibili su una rete o monitorare la disponibilità del server. Questo è spesso chiamato ping sweep ed è più affidabile del ping dell'indirizzo di trasmissione perché molti host non rispondono alle richieste di trasmissione.

Il rilevamento dell'host predefinito eseguito -snconsiste in una richiesta di eco ICMP, TCP SYN sulla porta 443, TCP ACK sulla porta 80 e una richiesta di data / ora ICMP per impostazione predefinita.

Quando eseguito da un utente senza privilegi, solo i pacchetti SYN vengono inviati (usando una connectchiamata) alle porte 80 e 443 sulla destinazione.

Quando un utente privilegiato tenta di eseguire la scansione di destinazioni su una rete Ethernet locale, le richieste ARP vengono utilizzate a meno che non sia --send-ipstato specificato. L' -snopzione può essere combinata con qualsiasi tipo di sonda di rilevamento (le -P*opzioni, esclusa -Pn) per una maggiore flessibilità.

Se viene utilizzata una di queste opzioni del tipo di sonda e del numero di porta, le sonde predefinite vengono sostituite. Quando sono presenti firewall rigidi tra l'host di origine che esegue Nmap e la rete di destinazione, si consiglia di utilizzare tali tecniche avanzate. In caso contrario, gli host potrebbero essere persi quando il firewall rilascia sonde o le loro risposte.

Nelle versioni precedenti di Nmap, -snera noto come -sP.


Non funziona
Maythux,

4
Questo dovrà essere modificato in modo da essere modificato 192.168.1.0/24nell'intervallo di indirizzi IP dell'utente.
Kiri,

@ minerz029 Certo, ho cambiato l'IP
Maythux il

Non so se questo sia il motivo, ma su Linux lo uso nmap -sP 192.168.1.0/24per un ping scan.
tiktak,

2
Sai perché sono richiesti i privilegi di root per leggere i destinatari MAC dalla rete?
Michael Aquilina,

45

arpvi lentamente si restituirà un elenco di indirizzi MAC e IP attivi oi loro nomi di host se ne hanno uno. Se vuoi che vada più veloce, puoi usare arp -nquale dovrebbe saltare le ricerche DNS. Se hai bisogno di analizzarlo in qualcosa arp -ansalterà le colonne a larghezza fissa.

$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.10.0.11               ether   00:04:ff:ff:ff:d0   C                     eth0
10.10.0.16               ether   00:04:ff:ff:ff:a6   C                     eth0
raspbmc.local            ether   00:1f:ff:ff:ff:9c   C                     eth0
10.10.0.19               ether   00:04:ff:ff:ff:c9   C                     eth0
10.10.0.12               ether   bc:f5:ff:ff:ff:93   C                     eth0
10.10.0.17               ether   00:04:ff:ff:ff:57   C                     eth0
10.10.0.1                ether   20:4e:ff:ff:ff:30   C                     eth0
HPF2257E.local           ether   a0:b3:ff:ff:ff:7e   C                     eth0
10.10.0.15               ether   00:04:ff:ff:ff:b9   C                     eth0
tim                      ether   00:22:ff:ff:ff:af   C                     eth0
10.10.0.13               ether   60:be:ff:ff:ff:e0   C                     eth0

Altrimenti, il tuo router dovrebbe essere in grado di darti un'idea dei dispositivi attivi (molti lo fanno).


Modifica il commento di Per David, questa risposta non è perfetta come avevo sperato prima.

arpsi basa su contatti precedenti di qualche tipo per funzionare. Tuttavia, a mio avviso, i dispositivi moderni sono tutti così chiacchieroni (dovresti davvero guardare i fili - è un'istruzione) a livello di trasmissione che è improbabile che un dispositivo sia presente sulla rete senza almeno rispondere a una trasmissione. (Per essere sicuri, puoi prima eseguire il ping di tutti i dispositivi sulla rete con 10.10.0.255 e quindi probabilmente otterrai il 90 +% dei dispositivi.)

Per darti una sorta di idea di cosa intendo, il 10.10.0.16 sopra è il nostro PVR. Non c'è interazione diretta tra il mio PC e il PVR e non ci sono servizi in esecuzione sul PVR (nemmeno UPNP / DLNA).

Solo per giocare rapidamente con gli argomenti ...

  • Ma che dire degli hacker nella mia rete?! 1
    Possono bloccare anche i ping ICMP. Possono bloccare tutte le risposte a ogni tipo di scansione.
  • Oh, ma sicuramente nmapè ancora la migliore soluzione possibile
    Quando viene eseguito qui, manca ancora quattro dispositivi. Quattro dispositivi attivi sulla rete. O non stanno rispondendo ai ping o nmap non sta aspettando abbastanza a lungo per loro di rispondere ... Non lo so. nmapè un ottimo strumento (specialmente per la scansione delle porte che potresti voler fare in seguito) ma è ancora un po 'goffo (e un po' lento) per questo problema. E non chiamarmi Shirley.

1
Se cambio il mio ID MAC con Mac Changer, può mostrare l'originale?
rʒɑdʒɑ,

2
@BYEAskUbuntu se usi il cambia MAC, il tuo MAC è come lo hai impostato. Per tutti gli utenti della rete la sua origine è generalmente sconosciuta, quindi no, non può.
Ruslan,

3
@Ruslan Questo è solo un paranoico del fatto che li sopporto ... Sono sicuro che sarebbe abbastanza difficile per un individuo fare qualcosa con loro, ma non sai mai chi ti stia perseguitando.
Oli

9
Sono sorpreso da questa risposta. "arp" non mostra un elenco di indirizzi MAC attivi sulla rete locale. "arp" mostra un elenco di indirizzi MAC corrispondenti alle macchine che hanno interagito con la macchina su cui è in esecuzione. Se di recente non è stata effettuata alcuna comunicazione tra il computer locale e un altro computer sulla rete, tale computer non verrà visualizzato nell'elenco "arp".
David

5
Ho appena fatto un rapido test sulla mia rete e arp sta visualizzando solo circa il 25% dei dispositivi esistenti. Se il computer che esegue arp non ha ricevuto un pacchetto da un altro dispositivo, non sarà nell'elenco arp. Sarei interessato a saperne di più sui dispositivi che nmap non è riuscito a rilevare sulla tua rete; ci sono modi per nascondersi da nmap ma ho trovato abbastanza efficace la scansione predefinita di nmap. Detto questo, non esiste una risposta sicura perché se un dispositivo non sta generando traffico e non sta rispondendo a richieste, è invisibile, ma la maggior parte dei dispositivi risponderà a un tipo di richiesta.
David

37

Io uso arp-scanper questo:

$ sudo arp-scan -l
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.2.1     ec:1a:59:61:07:b2       (Unknown)
192.168.2.50    90:59:af:3d:6d:bc       (Unknown)
192.168.2.51    3c:97:0e:48:22:12       (Unknown)
192.168.2.52    00:18:31:87:8f:b0       Texas Instruments

4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.282 seconds (199.69 hosts/sec). 4 responded

1
Se desideri specificare l'interfaccia di rete, ad esempio wireless, usa questo comandosudo arp-scan -l -I wlan0
HarlemSquirrel

Sì, arp-scan è davvero lo "strumento migliore per il lavoro".
marzo

Questo non funziona per me ... il dispositivo non risponde per qualche motivo.
Andrew Wagner,

per far funzionare arp-scan dovevo fare brew install arp-scanin OSX El Capitan.
Jamescampbell,

17

È possibile utilizzare arp-scan.

Installa usando questo comando:

sudo apt-get install arp-scan

Per elencare tutti gli indirizzi IP e gli indirizzi MAC associati, utilizzare:

sudo arp-scan --interface=eth0 --localnet

L'output sarà simile al seguente:

Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 16777216 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.3 38:60:77:29:31:36   (Unknown)
192.168.1.8 4c:72:b9:7c:bb:7e   (Unknown)
192.168.1.110   00:15:17:5f:d2:80   Intel Corporate
192.168.1.111   00:ff:88:5f:fd:f0   (Unknown)
192.168.1.153   00:15:17:5f:d2:82   Intel Corporate
192.168.1.180   52:54:00:70:04:02   QEMU
192.168.1.199   52:54:00:fe:7f:78   QEMU

1
Questo non sta trovando un dispositivo che non ha ancora un IP ...
Andrew Wagner,

9

GUI

Puoi provare avahi-discoverInstalla avahi-discover .

  1. Installalo con questo comando (o facendo clic sul link sopra):

    sudo apt-get install avahi-discover
    
  2. Esegui il browser Avahi Zeroconf o avahi-discoverda un terminale.
  3. Dovresti vedere una finestra con un elenco di dispositivi sulla tua rete locale.
    L'indirizzo MAC sarà la stringa tra parentesi quadre.

Riga di comando

È possibile utilizzare questo comando in un terminale:

avahi-browse -a -t -d local

È installato per impostazione predefinita.


1
Questo funziona per mostrare l'indirizzo MAC di una macchina che non esegue alcun servizio di alcun tipo?
Eliah Kagan,

3
Nel mio caso questo non funziona per tutti i dispositivi della rete. È abbastanza dannatamente pulito, ma non mostrerà client stupidi senza servizi avahi / upnp.
Oli

5
  1. Prima fai una scansione della rete per vedere quali host sono raggiungibili / online usando nmap -sn 1.2.3.4/24ofping -g 1.2.3.4/24

  2. Quindi interrogare l'indirizzo MAC corrispondente all'indirizzo IP utilizzando arping. Pseudo-codice avanti:

    for i in $(cat list-of-reachable-hosts)
    do 
        arping $i
    done
    
  3. Cheatery: consulta la cache arp del tuo switch locale; questo dovrebbe darti una bella panoramica ...


3

Nei casi in cui è supportato il protocollo NetBIOS , preferisco usare

nbtscan 192.168.1.1-192.168.1.255.


5
Questo rileva solo i client che supportano il protocollo NetBIOS (Windows e Linux + Samba).
Eric Carvalho,

2

Sono stato incuriosito da questo post. Ne ho avuto bisogno.

Ho scritto uno script di shell che analizza l' arpoutput usando awkistruzioni e genera output HTML. Se si esegue lo script e si reindirizza l'output su un file HTML, viene lasciato un file HTML che mostra l'IP, l'indirizzo MAC completo e un collegamento alla pagina di ricerca OEE IEEE. Questo aiuta a determinare il cliente tramite il produttore di schede di rete.

printf "<html>\n<title>LAN IPs and their MACs</title>\n<body>\n"
arp -a | awk '{print $2,$4}' | awk -F'[().: ]' '{print $2"."$3"."$4"."$5,$6,$7":"$8":"$9":"$10":"$11":"$12,"<a href=\"http://standards.ieee.org/cgi-bin/ouisearch?"$7$8$9"\">IEEE OUI Lookup "$7"-"$8"-"$9"</a><br>"}'
printf "\n</body>\n</html>\n"

Aiuta a eseguire prima una nmapscansione sulla LAN in modo da avere voci nella tabella ARP. Speriamo che la formattazione tradotta. Potresti abbellirlo per avere il testo in un formato tabella.


2

Dopo alcuni lavori e ricerche ho scoperto questo comando:

nmap -sP -PE -PA21,23,80,3389 192.168.1.*

nmap: Strumento di esplorazione della rete e scanner di sicurezza / porte

-sP(Salta scansione porta). Questa opzione dice a Nmap di non eseguire una scansione delle porte dopo il rilevamento degli host e di stampare solo gli host disponibili che hanno risposto alla scansione. Questo è spesso noto come "ping scan", ma è anche possibile richiedere l'esecuzione di script traceroute e host NSE. Questo è di default un passo più invadente della scansione dell'elenco e può spesso essere usato per gli stessi scopi. Consente una leggera ricognizione di una rete target senza attirare molta attenzione. Sapere quanti host sono attivi è più prezioso per gli aggressori rispetto all'elenco fornito dalla scansione dell'elenco di ogni singolo IP e nome host.

-PE; -PP; -PM (Tipi di ping ICMP). Oltre agli insoliti tipi di rilevamento host TCP, UDP e SCTP discussi in precedenza, Nmap può inviare i pacchetti standard inviati dal programma di ping onnipresente. Nmap invia un pacchetto ICMP di tipo 8 (richiesta di eco) agli indirizzi IP di destinazione, aspettandosi un tipo 0 (risposta di eco) in cambio di host disponibili. Sfortunatamente per gli esploratori di rete, molti host e firewall ora bloccano questi pacchetti, invece di rispondere come richiesto da RFC 1122 [2]. Per questo motivo, le scansioni solo ICMP sono raramente abbastanza affidabili contro obiettivi sconosciuti su Internet. Ma per gli amministratori di sistema che controllano una rete interna, possono essere un approccio pratico ed efficiente. Utilizzare l'opzione -PE per abilitare questo comportamento della richiesta di eco.

-A(Opzioni di scansione aggressive). Questa opzione consente ulteriori opzioni avanzate e aggressive.

21,23,80,3389 Porte da cercare

192.168.1.* Gamma di IP. sostituisci con il tuo



0

puoi usare arp.

Questo ti mostrerà il MAC e l'IP ..


Funziona solo con i dispositivi a cui sono stati collegati (ad es. Con un ping).
Peter Mortensen,
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.