bueno ya lo solucione... encontre dos formas, usando el comando split, que todavia no la termine de entender, y otra usando un while leyendo de un texto, les dejo el codigo
lo corregi un toque que tenia un par de errores... ahora tambien funciona si cambias de red con distinto rango de ip
lo corregi un toque que tenia un par de errores... ahora tambien funciona si cambias de red con distinto rango de ip
Código (bash) [Seleccionar]
#!/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