MultiThreading en BASH
Comment faire du MultiThreading en BASH.... En fait c'est assez simple, il suffit des mettre…
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…
Cet article est vivant - corrections, contre-arguments et retours de production sont les bienvenus. Trois canaux, choisissez celui qui vous convient.