Bonjour a tous,

Ma question est tres simple et ne devrait pas vous posez trop de probleme.

J'ai ecri un script shell qui execute la commande ping sur plusieurs ip :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
#! /bin/bash
 
# Select the third number of your own ip (to select the good router)
ip1=$(hostname -I | awk '{print $1}' | sed -e "s/\./ /g" | awk '{print $3}')
 
rm logIp  2> /dev/null
 
# Execute the ping command on the 254 ip correpondant to the selecting router
function pingIP()
{
  ping -c 1 192.168.$ip1.$1 >& /dev/null
  [ $? -eq  0 ] && echo "192.168.$ip1.$1" >> logIp
}
 
# Loop to execute all ping command on the same time
for ip2 in $(seq 1 254); do 
  pingIP $ip2 &
done
 
# Code to remove my own ip to the file which contains all ips
myIp=$(hostname -I)
grep -v $myIp logIp > logIp
J'ai commente mon code pour que vous sachiez ce que j'ai voulu faire,
mon souci :

Ce script ne donne jamais le meme resultat et pourtant, je sais qu'il teste toujours les memes 254 ips.

A moins que les gens s'amusent a deconnecte leur pc toutes les secondes, je ne comprends pas pourquoi je ne recois pas toujours la meme liste.

Savez-vous pourquoi ?

Merci d'avance