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 :
curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true
Exemple :
youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | tail <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 :
curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry
Exemple:
youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry <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.
youarewelcom@myhost : ~/Raspberry > sudo nmap -sP 192.168.0.0/24 | head 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 :
# 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 :
youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml\?download\=true 2>/dev/null | grep -i Raspberry|awk -F\" '{ print $2 }' >Raspberry.MacPrefix.txt
youarewelcom@myhost : ~/Raspberry > 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'
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 :
youarewelcom@myhost : ~/Raspberry > 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'
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…
