hola a todos me gustaría que me ayudasen a resolver el siguiente script:
Se pide construir un script que pida al usuario una ip me devuelva el sitio web al que apunta y el puerto por el que se conecta. Por Ej: Si el usuario introduce la ip 10.0.0.10, el script debe devolver: www.sitio3.com 8080.
En caso de que la ip dada no exista deberá devolver el mensaje: "IP NO REGISTRADA."
los ficheros son los siguientes:
ips.txt
--------
192.168.0.10 www.sitio01.net
172.26.0.10 www.sitio2.org
10.0.0.10 www.sitio3.com
192.168.10.5 www.sitio4.es
puertos.txt
----------
www.sitio01.net 80
www.sitio2.org 8008
www.sitio3.com 8080
www.sitio4.es 8000
el script que yo he realizado es el siguiente:
#!/bin/bash
echo "elegimos la ip de la que queremos saber el puerto: "
cat ./ips.txt
echo ""
echo "Introduce una IP para saber su puerto: "
read ip
echo "IP: "$ip
buscar_ip=$(cat ./ips.txt | grep -n '^'$ip'$' | cut -d " " -f 1)
puerto=$(head -$buscar_ip puertos.txt | tail -1)
echo "puerto: "$puerto
Se que no es un script complicado, pero no consigo resolverlo
Saludos
ya lo tengo casi resuelto
#!/bin/bash
lin_ip=$(wc -l ./ips.txt | cut -d " " -f 1)
lin_puert=$(wc -l ./puertos.txt | cut -d " " -f 1)
echo "IP: "$lin_ip
echo 'Puert: '$lin_puert
echo "elegimos la ip de la que queremos saber el puerto: "
cat ./ips.txt
echo ""
echo "Introduce una IP para saber su puerto: "
read ip
echo "IP: "$ip
buscar_ip=$(cat ./ips.txt | grep -c '^'$ip'$' | cut -d " " -f 1 ./ips.txt)
buscar_direc_ip=$(cat ./ips.txt | grep -c '^'$ip'$' | cut -d " " -f 2 ./ips.txt)
buscar_puerto=$(cat ./puertos.txt | grep -c '^'$ip'$' | cut -d " " -f 1 ./puertos.txt)
buscar_puerto_puerto=$(cat ./puertos.txt | grep -c '^'$ip'$' | cut -d " " -f 2 ./puertos.txt)
echo "buscar_ip: "$buscar_ip
echo "buscar_direc_ip: "$buscar_direc_ip
echo "buscar_puerto: "$buscar_puerto
echo "buscar_puerto_puerto: "$buscar_puerto_puerto
for i in $(seq $i $lin_ip)
do
if [ "$lin_ip" = "$i" ]
then
ii=$(head -$i ./puertos.txt | tail -1 | cut -d " " -f 2)
echo "ii: "$ii
fi
done
el único inconveniente es que siempre me muestra el ultimo puerto, no el que yo elijo, me pueden ayudar a terminar de solucionarlo,
saludos
solucionado!!!!