Répertoriez toutes les adresses MAC et les adresses IP associées dans mon réseau local (LAN)

84

Comment lister toutes les adresses MAC et les adresses IP associées des machines connectées à mon réseau local (LAN)?

Maythux
la source
6
il est important de comprendre que dès que vous traverserez un équipement de couche réseau de niveau 3, il ne sera plus possible d'obtenir le MAC et l'IP derrière cet équipement
Kiwy
Pourquoi placez-vous !après un point d'interrogation? Ce n'est pas nécessaire et n'est utilisé que dans les cas où la question est criée ou d'une grande importance.
Kiri
@ mineurz029 merci pour clarifier cela
Maythux
1
sudo tail -f /var/log/messages, puis débranchez et rebranchez le périphérique sur lequel vous essayez de trouver l’adresse MAC ou grep / read through messages pour rechercher le périphérique.
IceArdor

Réponses:

63

Vous pouvez utiliser l' utilitaire Nmap pour cela. Nmap est un utilitaire de scanner de réseau gratuit.

Essayez juste:

sudo nmap -sn 192.168.1.0/24

Veuillez remplacer votre identifiant de réseau et votre masque de sous-réseau.

Comment trouver un identifiant réseau et un masque de sous-réseau

Utilisez la commande 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

Ici au point 2, j'ai l' wlan0appareil. Il dit inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0, l' adresse IP: 192.168.3.66, masque de sous - réseau: 24. L'ID de réseau est 192.168.3.0, il suffit de remplacer le dernier chiffre par 0.

Ou comme le nmapdit l' homme :

sudo nmap -sn 192.168.1.0/24

Voici une petite citation de la page de manuel nmap (1) :

-sn (No port scan)

Cette option indique à Nmap de ne pas effectuer d'analyse du port après la découverte d'hôte et d'imprimer uniquement les hôtes disponibles ayant répondu à l'analyse. Ceci est souvent appelé «analyse du ping», mais vous pouvez également demander que les scripts d'hôte traceroute et NSE soient exécutés.

Il s’agit par défaut d’une étape plus intrusive que le balayage de liste et peut souvent être utilisée aux mêmes fins. Il permet une reconnaissance légère d'un réseau cible sans attirer beaucoup d'attention.

Pour les attaquants, il est plus utile de connaître le nombre d'hôtes actifs que la liste fournie par l'analyse de liste de chaque adresse IP et nom d'hôte.

Les administrateurs système trouvent souvent cette option intéressante. Il peut facilement être utilisé pour compter les machines disponibles sur un réseau ou surveiller la disponibilité du serveur. Cela s'appelle souvent un balayage de ping et est plus fiable que de faire un ping sur l'adresse de diffusion car de nombreux hôtes ne répondent pas aux requêtes de diffusion.

La découverte d'hôte par défaut effectuée avec -snconsiste en une demande d'écho ICMP, TCP SYN sur le port 443, TCP ACK sur le port 80 et une demande d'horodatage ICMP par défaut.

Lorsqu'il est exécuté par un utilisateur non privilégié, seuls les paquets SYN sont envoyés (à l'aide d'un connectappel) aux ports 80 et 443 de la cible.

Lorsqu'un utilisateur privilégié tente d'analyser des cibles sur un réseau Ethernet local, les demandes ARP sont utilisées sauf indication --send-ipcontraire. Cette -snoption peut être combinée à n’importe quel type de sonde de découverte (les -P*options, à l’exclusion -Pn) pour une plus grande flexibilité.

Si l'une de ces options de type de sonde et de numéro de port est utilisée, les sondes par défaut sont remplacées. Lorsque des pare-feu stricts sont en place entre l'hôte source exécutant Nmap et le réseau cible, il est recommandé d'utiliser ces techniques avancées. Sinon, des hôtes risquent d'être manqués lorsque le pare-feu supprime des sondes ou leurs réponses.

Dans les versions précédentes de Nmap, il -snétait connu sous le nom de -sP.

c0rp
la source
Cela ne fonctionne pas
Maythux
4
Cela devra être ajusté de manière à ce que 192.168.1.0/24la plage d'adresses IP de l'utilisateur soit modifiée.
Kiri
@ minerz029 Bien sûr, j'ai changé l'adresse IP
Maythux, le
Je ne sais pas si c'est la raison, mais sous Linux, j'utilise nmap -sP 192.168.1.0/24un scan de ping.
mardi
2
Savez-vous pourquoi les privilèges root sont tenus de lire les adresses MAC depuis le réseau?
Michael Aquilina
45

arpva lentement vous retourner une liste d'adresses MAC actives et IP ou leurs noms d'hôtes s'ils en ont un. Si vous voulez que cela aille plus vite, vous pouvez utiliser arp -nce qui devrait ignorer les recherches DNS. Si vous devez l’analyser dans quelque chose arp -an, les colonnes de largeur fixe seront ignorées.

$ 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

Sinon, votre routeur devrait pouvoir vous donner une idée des périphériques actifs (la plupart le font).


Edit Le commentaire de Per davidcl, cette réponse n'est pas aussi parfaite que je l'avais d'abord espéré.

arprepose sur le contact précédent de quelque sorte au travail. Cependant, à mon avis, les appareils modernes sont tous tellement bavards (vous devriez vraiment regarder Wirehark - c'est une éducation) au niveau de la diffusion qu'il est peu probable qu'un appareil soit présent sur le réseau sans au moins répondre à une émission. (Pour être sûr que vous pouvez d'abord envoyer une requête ping à tous les périphériques du réseau avec 10.10.0.255, vous obtiendrez probablement plus de 90% des périphériques.)

Pour vous donner une idée de ce que je veux dire, le 10.10.0.16 ci-dessus est notre PVR. Il n'y a pas d'interaction directe entre mon PC et le PVR et il n'y a pas de services fonctionnant sur le PVR (pas de UPNP / DLNA non plus).

Juste pour jouer à travers les arguments rapidement ...

  • Mais qu’en est-il des pirates informatiques de mon réseau?! 1
    Ils peuvent également bloquer les pings ICMP. Ils peuvent bloquer toutes les réponses à chaque type d'analyse.
  • Oh, mais c'est sûrement la nmapmeilleure solution possible.
    Lorsqu'il est exécuté ici, il manque encore quatre appareils. Quatre appareils actifs sur le réseau. Soit ils ne répondent pas aux pings, soit nmap n'attend pas assez longtemps pour qu'ils répondent ... je ne sais pas. nmapest un excellent outil (en particulier pour l’analyse de ports que vous voudrez peut-être faire ensuite) mais il reste un peu maladroit (et un peu lent) pour résoudre ce problème. Et ne m'appelle pas Shirley.
Oli
la source
1
SI je change d'ID MAC avec le changeur mac, peut-il afficher l'original?
Départ le
2
@BYEAskUbuntu si vous utilisez le changeur MAC, votre MAC est ce que vous définissez. Pour tous les utilisateurs du réseau, son origine est généralement inconnue, alors non.
Ruslan
3
@Ruslan C'est juste que je suis paranoïaque en les effaçant ... Je suis sûr qu'il serait assez difficile pour une personne de faire quoi que ce soit avec elle, mais vous ne savez jamais qui vous poursuit.
Oli
9
Je suis surpris par cette réponse. "arp" n'affiche pas une liste d'adresses MAC actives sur le réseau local. "arp" affiche une liste d'adresses MAC correspondant aux machines ayant interagi avec la machine sur laquelle il est exécuté. S'il n'y a pas eu de communication récente entre la machine locale et une autre machine du réseau, cette machine n'apparaîtra pas dans la liste "arp".
davidcl
5
Je viens de faire un test rapide sur mon réseau et arp affiche environ 25% seulement des périphériques existants. Si l'ordinateur qui exécute arp n'a pas reçu de paquet d'un autre périphérique, il ne sera pas dans la liste d'arp. Je souhaiterais en savoir plus sur les périphériques que nmap n'a pas réussi à détecter sur votre réseau. il existe des moyens de se cacher de nmap mais j’ai trouvé l’analyse par défaut de nmap assez efficace. Cela dit, il n'y a pas de réponse à la sécurité intrinsèque, car si un périphérique ne génère pas de trafic et ne répond pas aux requêtes, il est invisible - mais la plupart des périphériques répondront à un type de requête.
davidcl
37

J'utilise arp-scanpour cela:

$ 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
jcrigby
la source
1
Si vous souhaitez spécifier l'interface réseau, comme Wireless, utilisez cette commandesudo arp-scan -l -I wlan0
HarlemSquirrel
Oui, arp-scan est en effet le "meilleur outil pour le travail".
mardi
Cela ne fonctionne pas pour moi ... l'appareil ne répond pas pour une raison quelconque.
Andrew Wagner
pour que l'arp-scan fonctionne, je devais le faire brew install arp-scansous OSX El Capitan.
jamescampbell
17

Vous pouvez utiliser arp-scan.

Installez en utilisant cette commande:

sudo apt-get install arp-scan

Pour répertorier toutes les adresses IP et les adresses MAC associées, utilisez:

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

La sortie ressemblera à ceci:

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
Peter Mortensen
la source
1
Ce n'est pas trouver un appareil qui n'a pas encore d'adresse IP ...
Andrew Wagner
9

Interface graphique

Vous pouvez essayer avahi-découvrirInstaller avahi-découvrir .

  1. Installez-le avec cette commande (ou en cliquant sur le lien ci-dessus):

    sudo apt-get install avahi-discover
    
  2. Exécutez le navigateur Avahi Zeroconf ou à avahi-discoverpartir d'un terminal.
  3. Vous devriez voir une fenêtre avec une liste de périphériques sur votre réseau local.
    L'adresse MAC sera la chaîne entre crochets.

Ligne de commande

Vous pouvez utiliser cette commande dans un terminal:

avahi-browse -a -t -d local

Il est installé par défaut.

kiri
la source
1
Est-ce que cela fonctionne pour afficher l'adresse MAC d'une machine qui n'exécute aucun service d'aucune sorte?
Eliah Kagan
3
Dans mon cas, cela ne fonctionne pas pour tous les appareils du réseau. C'est sacrément soigné, mais cela ne montrera pas les clients stupides sans les services avahi / upnp.
Oli
5
  1. Effectuez d’abord une analyse du réseau pour voir quels hôtes sont accessibles / en ligne à l’aide de nmap -sn 1.2.3.4/24oufping -g 1.2.3.4/24

  2. Puis interrogez l'adresse MAC correspondant à l'adresse IP à l'aide de arping. Pseudo-code à venir:

    for i in $(cat list-of-reachable-hosts)
    do 
        arping $i
    done
    
  3. Cheatery: consultez l'arp-cache de votre commutateur local; cela devrait vous donner un bon aperçu ...

far4d
la source
3

Dans les cas où le protocole NetBIOS est pris en charge, je préfère utiliser

nbtscan 192.168.1.1-192.168.1.255.

Silveri
la source
5
Ceci ne détecte que les clients prenant en charge le protocole NetBIOS (Windows et Linux + Samba).
Eric Carvalho
2

J'ai été intrigué par ce post. J'ai eu besoin de ça.

J'ai écrit un script shell qui analyse la arpsortie à l'aide d' awkinstructions et génère une sortie HTML. Si vous exécutez le script et redirigez la sortie vers un fichier HTML, il vous reste un fichier HTML indiquant l'adresse IP, l'adresse MAC complète et un lien vers la page de recherche IEEE OUI. Cela aide à déterminer le client par le biais du fabricant de la carte réseau.

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"

Il est utile d’exécuter d’abord une nmapanalyse sur votre réseau local afin d’avoir des entrées dans la table ARP. Espérons que la mise en forme traduite. Vous pourriez améliorer ceci pour avoir le texte dans un format de tableau.

utilisateur38537
la source
2

Après quelques travaux et recherches, j'ai découvert cette commande:

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

nmap: Outil d'exploration de réseau et scanner de sécurité / port

-sP(Passer le scan du port). Cette option indique à Nmap de ne pas effectuer d'analyse du port après la découverte d'hôte et d'imprimer uniquement les hôtes disponibles ayant répondu à l'analyse. Ceci est souvent appelé «analyse du ping», mais vous pouvez également demander que les scripts d'hôte traceroute et NSE soient exécutés. Il s’agit par défaut d’une étape plus intrusive que le balayage de liste et peut souvent être utilisée aux mêmes fins. Il permet une reconnaissance légère d'un réseau cible sans attirer beaucoup d'attention. Pour les attaquants, il est plus utile de connaître le nombre d'hôtes actifs que la liste fournie par l'analyse de la liste de chaque adresse IP et nom d'hôte.

-PE; -PP; -PM (Types de Ping ICMP). Outre les types de découverte inhabituels des hôtes TCP, UDP et SCTP décrits précédemment, Nmap peut envoyer les paquets standard envoyés par le programme ping omniprésent. Nmap envoie un paquet ICMP de type 8 (demande d'écho) aux adresses IP cibles, en attendant un type 0 (réponse d'écho) en retour des hôtes disponibles. Malheureusement pour les explorateurs de réseau, de nombreux hôtes et pare-feu bloquent désormais ces paquets, plutôt que de répondre comme suit: requis par la RFC 1122 [2]. Pour cette raison, les analyses ICMP uniquement sont rarement suffisamment fiables contre des cibles inconnues sur Internet. Mais pour les administrateurs système surveillant un réseau interne, ils peuvent constituer une approche pratique et efficace. Utilisez l'option -PE pour activer ce comportement de demande d'écho.

-A(Options d'analyse agressives). Cette option active des options avancées et agressives supplémentaires.

21,23,80,3389 Ports à parcourir

192.168.1.* Plage d'IP. remplacer par le vôtre

Maythux
la source
1

Après m'être fatigué d'utiliser nmap et ARP combo, j'ai créé ce petit programme qui interroge toutes les adresses MAC d'une plage d'adresses IP donnée: https://github.com/drkblog/findmacs.

drk.com.ar
la source
Est-ce qu'il interroge séquentiellement ou en parallèle?
Peter Mortensen
0

vous pouvez utiliser arp.

Cela vous montrera le MAC et l'adresse IP ..


la source
Cela ne fonctionne que pour les appareils qui ont été connectés (par exemple, par un ping).
Peter Mortensen