Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

Connaitre les machines allumées sur un réseau

Dans les établissements scolaires par exemple, il y a au moins deux réseaux séparés : admin et pédago

 

Il peut être intéressant de connaître quelles sont les machines restées allumées pour une raison ou pour une autre (une machine Windows qui ne s'éteint pas ou dont la veille n'a pas été déclenchée, une machine Linux restée ouverte...)

 

Pourquoi ne pas installer un système dans le style d'IP scan sur un serveur web afin d'avoir facilement ces informations ? En plus cela permet d'avoir un historique toutes les heures par exemple...

 

La commande bash / linux nmap permet de scanner les IP présentes sur le réseau

La commande nmblookup permet de connaître le nom de machine (hostname) à partir de l'IP

 

Voici un script sans prétention (à adapter au réseau et au chemin du serveur web) pour arriver à conjuguer les deux commandes :

nmap -sP X.X.X.X/24 |grep "X.X" | awk '{print $5}' >/root/ipscan.txt
echo "<center>" >/var/www/intranet/ipscan.html
echo Liste des adresses IP pedago repondant au PING >>/var/www/intranet/ipscan.html
echo "<br>" >>/var/www/intranet/ipscan.html
date >>/var/www/intranet/ipscan.html
echo "<br><br>" >>/var/www/intranet/ipscan.html
echo  "<table border>" >>/var/www/intranet/ipscan.html
echo "<td>" >>/var/www/intranet/ipscan.html
while read
do
nmblookup -A "${REPLY}" |grep '<00' |grep -v GROUP |awk '{print $1}'
echo "<br>"
done < /root/ipscan.txt >>/var/www/intranet/ipscan.html
echo "<td>" >>/var/www/intranet/ipscan.html
nmap -sP X.X.X.X/24 |grep "X.X" | awk '{print " * "$5"<br>"}' >>/var/www/intranet/ipscan.html
echo "<td>" >>/var/www/intranet/ipscan.html
nmap -sP X.X.X.X/24 |grep "MAC Address" | awk '{print " * "$4$5$6" - "$3"<br>"}' >>/var/www/intranet/ipscan.html
echo  "</table>" >>/var/www/intranet/ipscan.html
echo "</center>" >>/var/www/intranet/ipscan.html
 
Il suffit de copier coller ce script par exemple dans un fichier ipscan.sh :
nano /usr/bin/ipscan.sh (pour éditer le fichier)
chmod +x /usr/bin/ipscan.sh (pour le rendre exécutable)
 
Rajouter la ligne suivante dans "crontab -e" pour que le script s'exécute une fois en début de chaque heure 
0  */1 * * * /usr/bin/ipscan.sh
 
Voilà ce que cela donne en image

Faire la même chose sur un serveur web Linux en admin et rajouter des raccourcis sur une page intranet par exemple

Bonus : pour avoir un historique des scan IP, rajouter cette ligne au script :

cp /var/www/intranet/ipscan.html  /var/www/intranet/historique/ipscan-`/bin/date '+%d-%m-%y_%H:%M'`.html

Pour être informé des derniers articles, inscrivez vous :