Login
blog > farwarx > Tuto : Récupérer les adresses MAC pour la fonction WOL

Tuto : Récupérer les adresses MAC pour la fonction WOL

Posté par : farwarx - Le Jeudi 29 Mai 2008 à 15:33

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
 
- Il faut installer 'iputils-arping'
 
 
 

Etape 2: Utilisation

 

Il faut être en 'root'.

 

#arping IP_CIBLE -c 1

ARPING IP_CIBLE from MON_IP eth0
Unicast 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!

 

 

 







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



.laisser un commentaire




Codes html interdits. Les liens sont convertis automatiquement.

Réalisation

Code & Design : Sébastien Cardona

Page générée en : 0.272299s