lo corregi un toque que tenia un par de errores... ahora tambien funciona si cambias de red con distinto rango de ip
Código
#!/bin/bash soloyo="false" hosts=0 let pip=0 let pip1=0 let pip2=0 let pip3=0 function setip() { ipme=`ifconfig wlan0 | awk '/inet addr/ {split ($2,A,":"); print A[2]}' | tee ip.txt` getip } function getip() { while read a do echo "Mi ip: $ipme" arr=$(echo $a | tr "." "\n") pip=0 for x in $arr do if [ $pip -eq 0 ] then pip1=$x pip=1 elif [ $pip -eq 1 ] then pip2=$x pip=2 elif [ $pip -eq 2 ] then pip3=$x pip=3 else ipmap=$(echo "$pip1.$pip2.$pip3.0/24") fi done done < ip.txt } function gente() { while [ soloyo="false" ] do setip echo "Haciendo nmap -sP $ipmap" nmap=`nmap -sP $ipmap | grep Host | tee hosts.txt` while read f1 f2 f3 f4 f5 f6 do if [ $f2 != $ipme ] then hosts=`expr $hosts + 1` echo $hosts ": " $f2 fi done < hosts.txt if [ $hosts -eq 1 ] then echo "Solo quedas vos y el router" soloyo="true" gdialog --yesno "Solo quedas vos y el router" hosts=0 solo fi hosts=0 sleep 250 done } function solo() { while [ soloyo="true" ] do setip echo "Haciendo nmap -sP $ipmap" nmap=`nmap -sP $ipmap | grep Host | tee hosts.txt` while read f1 f2 f3 f4 f5 f6 do if [ $f2 != $ipme ] then hosts=`expr $hosts + 1` echo $hosts ": " $f2 fi done < hosts.txt if [ $hosts -eq 1 ] then b=b #si no ponia nada aca no le gustaba al if... elif [ $hosts -eq 0 ] then b=b else echo "Se concetaron mas usuarios" soloyo="true" hosts=0 gdialog --yesno "Se conectaron mas usuarios" gente fi hosts=0 sleep 250 done } setip gente