Comment trouver automatiquement tous les Raspberry’s sur le réseau ?

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

Laisser un commentaire