• Publicidad

PING obteniendo respuestas desde Windows

¿Eres administrador de sistemas? Este foro es para todos aquellos temas relacionados con el uso de Perl para administración de sistemas.

PING obteniendo respuestas desde Windows

Notapor jimr1984 » 2015-04-27 20:13 @884

Saludos, buenas noches. Tengo un problema. Si alguien me puede ayudar, por favor.

Paso a comentar el problema que quiero resolver. Saludos...

Tengo una lista en texto llamada host.txt:
---- host.txt--
admin
cpanel
m
modulo
host
------------------

Desde la consola de Windows realizo un ping:

ping http://www.eldeber.com.bo

y la respuesta es

Haciendo ping a http://www.eldeber.com.bo [204.11.236.22] con 32 bytes de datos:
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.


ping host.eldeber.com.bo

Haciendo ping a host.eldeber.com.bo [108.163.131.104] con 32 bytes de datos: <--- ESTO necesito
Tiempo de espera agotado para esta solicitud.


Necesito la primera línea de la respuesta, donde empieza con 'Haciendo'.

Nota: Si bien en los dos ping que realizo sale " tiempo de espera agotado " no interesa ese mensaje: Lo que me interesa es que me capture la primera línea

Tengo un script que realicé pero no me funciona correctamente. Si pueden ayudarme, por favor. Saludos.

#!/usr/bin/perl
use strict;
use warnings;
use Net::Ping;

my $p = Net::Ping->new("tcp", 2);

# puerto 80
$p->port_number(80);


my $filename = 'host.txt';
open(my $fh, '<:encoding(UTF-8)', $filename)
or die "Could not open file '$filename' $!";

while (my $row = <$fh>) {
chomp $row;
print "$row\n";
if ($p->ping($row."."."eldeber.com.bo")) {

print $row.".eldeber.com.bo\n";
print $row." ENCONTRADO...\n";
} else {

print $row.".eldeber.com.bo\n";
print "NO EXISTE...\n";
}

Saludos... Espero que alguien pueda ayudarme, gracias.

Nota: el ejemplo que utilicé es eldeber.com.bo No interesa el dominio, puede ser "ejemplo.com" y ser ping host.ejemplo.com, ping m.ejemplo.com, ping *.ejemplo.com, etc.
Última edición por explorer el 2015-04-27 20:59 @916, editado 1 vez en total
Razón: ha => a; q => que; realize => realicé;
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Publicidad

Re: PING obteniendo respuestas desde Windows

Notapor explorer » 2015-04-27 21:14 @926

Por favor, recuerda que puedes poner marcas Perl a tu código, y así sale mejor en pantalla. Solo tienes que seleccionar el código y pulsar en el botón Perl que está encima de la caja de edición.

En cuanto al problema, Net::Ping no te sirve de nada.

Tú lo que quieres es la primera línea del resultado de la ejecución de un programa.

Net::Ping gestiona el protocolo Ping de forma directa (no ejecuta el comando ping del sistema). Por eso no te funciona el programa.

Lo que debes hacer es ejecutar el ping del sistema, con el comando qx(), y así tienes el resultado en una variable escalar. Solo te queda buscar la línea que comienza por la frase 'Haciendo...'.

Y no hace falta dar tantos saludos y gracias. Con una vez, por mensaje, vale ;)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: PING obteniendo respuestas desde Windows

Notapor jimr1984 » 2015-04-28 08:26 @393

Hola, explorer, muchas gracias, voy a seguir lo indicado.

Y les comento cómo me fue.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341


Volver a Administración

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados

cron