Tuto : Récupérer les adresses MAC pour la fonction WOL
Aujourd'hui je regardais les stats de Kookyoo.net et j'ai vu un post du 27 janvier 2007 sur la fonction WoL (Wake On Lan).
Une lecture de l'article s'impose si vous ne savez ce que c'est et que vous êtes curieux ;)
Tuto : Allumer un PC à distance avec la fonction WOL
Donc vous aurez compris que pour allumer un ordinateur il faut quelques prérequis:
- connaître l'adresse MAC de pc cible (à allumer)
- être dans le même réseau (les adresses MAC ne sortent pas du réseau)
Le problème qui va alors ce poser est la connaissance des adesses MAC, si il y a un parc de plus de 30 postes ça va commencer à être lourd !!!
Et si vous en avez encore plus et que vous avez un inventaire (+1) et bien ça va être un peu lourd aussi, cela dépend de votre niveau en programmation et du système évidemment.
Bref, je vais vous aider à récupérer les adresses MAC des pc cibles sans bouger de votre bureau!!!
Etape 1: Prérequis
- Il faut être sous Linux
Etape 2: Utilisation
Il faut être en 'root'.
#arping IP_CIBLE -c 1 ARPING IP_CIBLE from MON_IP eth0Unicast reply from MON_IP [AD:RE:SS:E0:MA:C0] 0.725ms Sent 1 probes (1 broadcast(s)) Received 1 response(s) |
Etape 3: Scripting
Il suffit maintenant de faire un script dans le language voulu pour exploiter ce programme et ce faire une petite base de correspondance IP/MAC de son réseau.
Coupler à un plan fait sous Visio/Dia, ça fait un travail propre ;)
Petit exemple pour une classe C en script bash:
#!/bin/bash ## Paramètres monreseau="192.168.1.X" ## Commande cmdarping='arping -c 1' ## On écrit dans un fichier toutes les IP du réseau i='1' echo $monreseau > ipnet while [ $i -le 254 ] do sed -e "s/X/$i/" ipnet >> ipreseau ((i=$i+1)) done echo "Fin de création du fichier des ip du réseau" ## Création fichier de sortie date=$(date +%Y-%m-%d) touch $date."_macaddress".$monreseau echo "Fin de création du fichier de sortie" ## Boucle pour les arping et écriture dans le fichier de sortie cat ipreseau | while read ligne do $cmdarping $ligne > arping1 resultcat=$(cat arping1 | grep Unicast) cat arping1 | awk '/Unicast/ {printf $5}' > tempmac mac=$(sed -e 's/[[]//' -e 's/[]]//' tempmac) echo "$ligne - $mac" >> $date."_macaddress".$monreseau rm -f tempmac rm -f arping1 done rm -f ipnet rm -f ipreseau echo "Fin du script" |
Le script est fonctionnel, mais largement améliorable. Je ne vais pas faire tout votre boulot non plus!
Après vous pouvez utiliser votre logiciel pour allumer les pc à distance.
Et si vous êtes motivé, vous pourrez faire une belle interface php pour allumer votre parc et le surveiller..... argh ça existe déjà :S (Nagios).
Bonne journée!
Billets similaires | Tagsrecuperer adresses mac wol wakeonlan arping linux |
Commentaires 2 commentaires
farwarx le 29 Mai 2008 à 15:35
J'ai oublié de dire, ça s'adresse aux administrateurs donc ça ne servait à rien de commenter le script outre mesure, sachant que c'est du basique... même si c'est du bash (peu de personne comprendra cette vanne foireuse)...Tonio le 29 Mai 2008 à 16:00
Nickel ce petit bash ;)Bref ça peut être utile tout ça, surtout si on est un bon administrateur réseau ^^ (c'est à dire très fainéant), car moins on en fait mieux on se porte...
Donc vive le WOL