Une adresse MAC (Medium Access Control ou contrôle d’accès au support) est un « numéro de série » unique affecté à chaque matériel du réseau Ethernet destiné à l’identifier dans un réseau. Cette adresse unique est attribuée par le fabricant à la fabrication du matériel.
Chaque fabricant est également identifié d’une manière unique. La liste des identifiants est mise à jour régulièrement et est disponible sur le web.
En utilisant une combinaison de commandes très simples, on peut donc déterminer le(s) fabricant(s) d’un élément réseau connecté à votre réseau !
Récupération des identifiants utilisés dans les adresses MAC :
1 |
curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true |
Exemple :
1 2 3 4 5 6 7 8 9 10 11 12 |
<strong>youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | tail</strong> <VendorMapping mac_prefix="FC:F7:7B" vendor_name="Huawei Device Co., Ltd."/> <VendorMapping mac_prefix="FC:F8:AE" vendor_name="Intel Corporate"/> <VendorMapping mac_prefix="FC:F8:B7" vendor_name="TRONTEQ Electronic"/> <VendorMapping mac_prefix="FC:FA:F7" vendor_name="Shanghai Baud Data Communication Co.,Ltd."/> <VendorMapping mac_prefix="FC:FB:FB" vendor_name="Cisco Systems, Inc"/> <VendorMapping mac_prefix="FC:FC:48" vendor_name="Apple, Inc."/> <VendorMapping mac_prefix="FC:FE:77" vendor_name="Hitachi Reftechno, Inc."/> <VendorMapping mac_prefix="FC:FE:C2" vendor_name="Invensys Controls UK Limited"/> <VendorMapping mac_prefix="FC:FF:AA" vendor_name="IEEE Registration Authority"/> </MacAddressVendorMappings> youarewelcom@myhost : ~/Raspberry > |
Extraire uniquement les lignes pour Raspberry :
1 |
curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry |
Exemple:
1 2 3 4 5 6 |
youarewelcom@myhost : ~/Raspberry > <strong>curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry</strong> <VendorMapping mac_prefix="3A:35:41" vendor_name="Raspberry Pi (Trading) Ltd"/> <VendorMapping mac_prefix="B8:27:EB" vendor_name="Raspberry Pi Foundation"/> <VendorMapping mac_prefix="DC:A6:32" vendor_name="Raspberry Pi Trading Ltd"/> <VendorMapping mac_prefix="E4:5F:01" vendor_name="Raspberry Pi Trading Ltd"/> youarewelcom@myhost : ~/Raspberry > |
Récupérer les listes des périphériques réseau :
La commande « nmap » permet d’explorer une réseau et de trouver les différents périphériques connectés au réseau.
1 2 3 4 5 6 7 8 9 10 11 12 |
youarewelcom@myhost : ~/Raspberry > <strong>sudo nmap -sP 192.168.0.0/24 | head</strong> Starting Nmap 7.91 ( https://nmap.org ) at 2021-04-03 15:42 CEST Nmap scan report for xxxxxxxxx (192.168.0.1) Host is up (0.0059s latency). MAC Address: D4:5D:64:0E:C9:98 (Asustek Computer) Nmap scan report for yyyyyyyyy (192.168.0.15) Host is up (0.34s latency). MAC Address: 14:88:E6:80:20:67 (Unknown) Nmap scan report for zzzzzzzz (192.168.0.18) Host is up (0.24s latency). MAC Address: 0A:B2:56:90:50:8A (Unknown) youarewelcom@myhost : ~/Raspberry > |
Il suffit d’utiliser cet utilitaire combiné à quelques commandes pour obtenir de manière simple l’ensemble des Raspberry’s présent sur le réseau :
1 2 3 4 5 |
# Retrieve the MAC Addresses prefixes for Raspberry curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry|awk -F\" '{ print $2 }' >Raspberry.MacPrefix.txt # Scan the network to find the different devices (IP and MAC Address) nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g' |
Exemple d’une manière de déterminer le hostname, l’ip et l’adresse MAC des Raspberry’s sur le réseau 192.168.0.0/24 :
1 2 3 4 5 6 7 8 |
youarewelcom@myhost : ~/Raspberry > <strong>curl https://devtools360.com/en/macaddress/vendorMacs.xml\?download\=true 2>/dev/null | grep -i Raspberry|awk -F\" '{ print $2 }' >Raspberry.MacPrefix.txt</strong> youarewelcom@myhost : ~/Raspberry > <strong>sudo nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g'</strong> 192.168.0.200 DC:A6:32:E6:FB:7C 192.168.0.201 E4:5F:01:04:38:61 192.168.0.202 E4:5F:01:04:37:17 192.168.0.203 E4:5F:01:04:38:55 192.168.0.204 E4:5F:01:04:38:0D youarewelcom@myhost : ~/Raspberry > |
Si vous avez un DNS ou que vous avez adapté votre ‘/etc/hosts’, vous obtiendrez :
1 2 3 4 5 6 7 |
youarewelcom@myhost : ~/Raspberry > <strong>sudo nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g'</strong> pi4node000 192.168.0.200 DC:A6:32:E6:FB:7C pi4node001 192.168.0.201 E4:5F:01:04:38:61 pi4node002 192.168.0.202 E4:5F:01:04:37:17 pi4node003 192.168.0.203 E4:5F:01:04:38:55 pi4node004 192.168.0.204 E4:5F:01:04:38:0D youarewelcom@myhost : ~/Raspberry > |
Cela sera très utile pour ansible…