🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #15382

RE: Programa para IPs libres

#15382
From: drf
Date: Tue, 04 Jul 2000 00:00
68 lines
2682 bytes
> #! /bin/bash
> X1=192
> X2=169
> X3=10
> X4=0
>
> ip_begin=$X1.$X2.$X3.$X4
> max_scan=20
> echo iniciamos bucle
> while  let "X4 < max_scan"
>     do
>     ip_begin=$X1.$X2.$X3.$X4
>     echo mandamos un ICMP
> #   ping_results=  'ping' -c1 $ip_begin <--------------------
>     ping_results= $(ping -c1 123.0.0.2) <-------------------
>     echo resultado del ping es = $ping_results
> if  let "$ping_results != 0 "
>     then
> echo $ip_begin no existe
> echo $ip_begin >> ip.mal.1
>
> fi
>     let "X4=X4+1"
>     done
>
> Esta cosa no abaca de funcionar correctamente. Hay un error en las
> lineas marcadas y no consigo solucionarlo. El objetivo es que el
> codigo que devuelve el ping cuando no encuentra el host se
almacene
> en ping_results, pero no lo he conseguido.
> Creo que en cuanto se arregle eso, el script funcionara
> correctamente, aunque solo escanea una red C.

El problema que tienes es que el ping se queda bloqueado en ciertas
operaciones, cuando el host de destino no responde.

Yo hice un script que utilizaba el resultado del ping de la manera
siguiente:

        #!/bin/sh
        /etc/cron.cincominutos/temp/mata 5 ping &
        SALIDA_PING=`ping 10.0.0.2 -c 1`
        SALIDA_GREP=`echo $SALIDA_PING | grep icmp_seq=0 -c`
        if [  "$SALIDA_GREP" -ne "1" ]; then ...


Antes de llamar al ping lanzo un proceso en segundo plano que a los
cinco segundos mata a todos los procesos "ping" si el ping muere
antes de devolver el resultado en la variable SALIDA_PING, esta
queda con contenido vacio. Lo cual es indicativo de que no se ha
completado el ping.

El script que mata al ping es el siguiente:

        #!/bin/sh
        sleep $1
        killall -q $2

recibe dos parametros: el numero de segundos que debe esperar y el
nombre del proceso a matar.


Espero que os sirva. Yo lo uso en un cron que se ejecuta cada 5
minutos, y testea una serie de ordenadores, y lleva 1 a�o
funcionando sin parar y sin dar problemas.
_______________

David Rodr�guez Fern�ndez
Technical Details
Message-ID: <8jsihc$bfe$1@talia.mad.ttd.net>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <3951374E.5E2C5634@omgs.es> <39528D1E.4EF2E784@omgs.es> <slrn8li15l.540.Ridiculum@localname.localdomain>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,d23863885ae5cfe3
X-Google-Attributes: gidf86c8,public
From: "drf" <d_a_v_i_d_a_r_r_o_b_a_n_o_j_o_r_o_b_e_s@serina.es>
Subject: RE: Programa para IPs libres
Date: 2000/07/04
Message-ID: <8jsihc$bfe$1@talia.mad.ttd.net>
X-Deja-AN: 642204148
References: <3951374E.5E2C5634@omgs.es> <39528D1E.4EF2E784@omgs.es> <slrn8li15l.540.Ridiculum@localname.localdomain>
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
Organization: Telefonica Transmision de Datos
X-MSMail-Priority: Normal
Newsgroups: es.comp.os.linux.programacion