Forums:
:)
Hola:
Necesito que alguien me eche la mano, ando bien novato en esto.
Requiero realizar un script para hacer un ping a toda una subnet y revisar que nodos me contestan, por ejemplo de la direccion 141.197.138.0 a la 141.197.138.255. Intente utilzr el comando ping con el parametro -k y -j, pero nomas no me sale.
Alguien podría ayudarme, se lo agradeceré infintamente.
Gracias.
Saludos!
Atte: Eric Avila
TLN
ping a subnets
Lo que quieres hacer es un broadcast. Para eso necesitas especificar la opcion -b y enviar el ping a la direccion 141.197.138.255 y ademas ser root.
Toma en cuenta que es posible que no recibas contestacion de muchos hosts, pues es posible que ignoren los pings que son a broadcast (es configurable).
La otra opcion es hacer un script que haga ping a cada host una cantidad limitada de veces y analice si hubo o no respuesta y luego te reporte los hosts que contestaron (o los que no), pero ya hay varias herramientas que lo pueden hacer por ti.
hazles un nmap -P0 -sS
hazles un nmap -P0 -sS IP/subred
te dará una lista de los hosts que estén con puertos abiertos aún cuando ellos no respondan al ping.
en efecto como te comunican en el post anterior: el -b funcionará sólo para los que se dignen a responderte al ping de broadcast, no es 100% confiable pues algunos hosts pueden dejar de responder.
tampoco mi solución la es, pues te puedes encontrar con algunas máquinas que no tengan puertos abiertos y que tampoco respondan al ping.
Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 305 675 1512, España: +34 917617884
Saludos
epe
EcuaLinux.com
+(593) 9 9924 6504
Servicios en Software Libre
Te paso un script
Hace algun tiempo necesité lo mismo, hice primero un script que almacenaba las salida del ping en un archivo, y combinando el cat y el grep determinaba si estaba "online" o no el host especificado.
Pero se demoraba cuando los pedidos no eran respondidos
Por eso lo mejoré y ahora en lugar de ping uso nmap mira:
# Variables
tmp=".nmap.tmp"
interval=30
echo ""
# Función que evalua si un host está on line o no con nmap
evalua(){
touch "$tmp"
nmap -sP $1 > $tmp
ff=`cat $tmp | grep "Nmap finished:"`
gg=${ff:28:11}
if [ "$gg" = "(1 host up)" ]
then
echo -e "\033[00;32m"$2" "$1" \033[1;0m"$3
else
echo -e "\033[00;31m"$2" "$1" \033[1;0m"$3
fi
rm "$tmp" -rf
}
# Inicio del programa
#let interval=$interval*2
while [ 1 -le 1 ]; do
clear
echo ""
evalua 172.16.1.14 00:00:00:00:00:00 "Clie-1"
evalua 172.16.1.22 00:00:00:00:00:00 "Clie-2"
evalua 172.16.1.38 00:00:00:00:00:00 "Clie-3"
evalua 172.16.1.46 00:00:00:00:00:00 "Clie-4"
# emulación del retardo
t=0
while [ $t -le $interval ]; do
echo -n "."
sleep 0.5
let t=$t+1
done
done
# Fin de script
Cree una función llamada evalua, tiene 3 parametros, el primero es la direccion ip del host, el segundo y el tercero son comentarios a desplegar, (en mi caso pongo la direccion mac del host y el nombre del cliente al que estoy monitoreando)
Esto desplega una linea con la información suministrada al invocar la función, en color verde si está conectado y en color rojo si no lo está.
Cualquier inconveniente con el script me avisas
bye
NOTA: ya no lo uso porque tengo una herramienta mas pulida, se llama gkrellm2 combinado con un plugin llamado multiping..
Cogito Ergo Sum
------------
Cogito Ergo Sum
Para saber que hosts
Para saber que hosts responden al ping en una subred siempre hago esto:
nmap -sP 192.168.0.0/24
Para un grupo de direcciones consecutivas:
nmap -sP 192.168.0.1-99
------------
Antes de preguntar visita el [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:
[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]
-----
Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:
[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]
(adsbygoogle = window.adsbygoogle || []).push({});