 |
Forum technique developpement, GNU Linux et logiciels, de l'ours Forum d'echange et d'entre aide sur le developpement, GNU Linux
|
| Forum developpement logiciel et Internet - Support informatique |
| |
Bienvenue sur le forum informatique et internet. N'hésitez pas à poser vos questions, à vous inscrire pour participer. Ce forum a pour but de partager une base de connaissance ouverte à tous couvrant l'informatique et les réseaux, antivirus et anti spywares. On a pas de pognon, de moins en moins même, mais on a des idées ! Dans l'esprit du logiciel libre, et de l'accès pour tous à la connaissance, vous pouvez copier les informations présentes dans ce forum. Il sera cool de votre part de placer un lien en retour vers ce forum, mais ça n'est pas obligatoire. |
|
|
| |
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
ronours Site Admin

Inscrit le: 25 Fév 2007 Messages: 1173
|
Posté le: Mer Mar 11, 2009 12:12 pm Sujet du message: Scanner une classe ip par ping automatiquement |
|
|
Voilà, j'avais besoin de retrouver mes petits sur une classe IP de mon réseau.
En effet, j'avais oublié quelles étaient les adresses allouées à certains point d'accès ! Du coup, pas moyen de me souvenir quelles IP sont actives ou pas sur le reseau.
Pour ça, j'ai donc faire un petit script BASH qui va envoyer un ping à chaque ip de la classe, et repondre oui ou non si l'ip est présente.
Ce script ne fait que : envoyer un ping à toutes les adresse de la classe C (253 machines) et renvoie l'info si l'ip répond ou pas.
Si des machines ont un firewall bloquant les paquets ICMP, elles ne repondront pas, mais bon, on s'en fou, les routeurs et points d'accès eux, ping sans soucis, et c'est bien le but, les retrouver !
Voila, le petit script que j'ai appellé "scan_network_ping.sh" :
| Code: | #!/bin/bash
#Ce script va lister tous les hotes presents sur le reseau dans la classe ip donnee
for ((x=1; $x<255 ; x++)) ; do
resultat=`ping -c 1 -i 0.2 192.168.1.$x|grep "seq=1 ttl"`
if [ -z "$resultat" ] ; then
echo "192.168.1.$x non present"
else
echo "192.168.1.$x PRESENT : $resultat"
fi
done |
C'est bien evidement perfectible, mais ça fait sont boulot, ici à cherche les ip de 192.168.1.1 à 192.168.1.254.
Pour changer ça, changer les 3 premiers chiffres de 192.168.1.$x en ce que vous voulez ( par ex 172.20.0.$x ) pour scanner le reseau 172.20.0.X
Voilà on pourrait passer la classe en parametres etc, mais on s'en fou, c'est didactique !
On apprend ici à faire un petit script shell en bash, l'utilisation d'une boucle "for", l'utilisation d'un compteur, l'utilisation de variables, l'appel à une commande externe au script, et le traitement du résultat.
C'est pas mal en 9 lignes
Pour le lancer :
| Code: | chmod +x scan_network_ping.sh
./scan_network_ping.sh |
_________________ Soutenez le logiciel libre, adhérez à la FSF (Europe ou Monde) , voir lien en pied de page. |
|
| Revenir en haut de page |
|
 |
|
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|