[perl] otra duda

=?iso-8859-1?B?TWFudWVsIFDpcmV6IEzzcGV6?= mapelo@writeme.com
Sat, 20 Feb 1999 12:07:02 +0100


Agradeceros a los dos la información que me habeis pasado. Comentar que tras las indicaciones de Salvador Ortiz de comprobar la versión perl de mi servidor para el correcto funcionamiento del script, desistí por no ser la que me recomendaba, y no tener suficientes conocimientos respecto a cómo modificarlo para que me sirviera. Agradecer tambien a Salvador (Salman) los esfuerzos para adaptar/crear el script a la versión 5004. Ahora me funciona de maravilla y lo adaptaré a mis scripts para que basicamente comprueben la existencia de la URL antes de incorporarla a la base de datos y poder de vez en cuando hacer una limpieza de ella, que, aunque no es muy grande (unos 1000 enlaces) se me hacía cuesta arriba mantenerla al día. Para los que quieren utilizar un programa gratuito y su base de direcciones no supere las 500 yo utilizaba de forma gratuita la utilidad de http://www.netmechanic.com/

Un cordial saludo.
**************************************************************
Manuel Pérez López mapelo@writeme.com

en http://www.arrakis.es/~mapelo/

**************************************************************






-----Mensaje original-----
De: Salman P. S. L. <correo@salmansl.es>
Para: perl@tlali.iztacala.unam.mx <perl@tlali.iztacala.unam.mx>
Fecha: lunes 15 de febrero de 1999 20:52
Asunto: RE: [perl] otra duda


>Sobre este tema de nuevo:
>
>Mantuve unos cuantos contactos con mi tocayo Salvador fuera de la lista,
>pues el codigo que el envio no me funcionaba en ninguno de los dos
>servidores con los que trabajo, esto era debido a que tienen instalado PERL
>5004 y ese script, solo funcionaba con 5005 debido a uno de los modulos.
>
>Despues de bucear por las direcciones que facilitasteis encontre algo que
>funciona con la version 5004. A mi me interesaba muchisimo para poder hacer
>una limpieza en la base de datos de mi buscador y eliminar los enlaces
>muertos, pero tambien lo implementare en el script de altas para comprobar
>la existencia de la pagina que se pretende dar de alta.
>
>Podeis verlo en http://salman.net/veridir/ donde aparte de la demostracion,
>podreis cojer el codigo fuente del script.
>
>Saludos
>Salvador
>
>-----Mensaje original-----
>De: Salvador Ortiz Garcia <sog@msg.com.mx>
>Para: Manuel Pérez López <mapelo@writeme.com>
>CC: perl@tlali.iztacala.unam.mx <perl@tlali.iztacala.unam.mx>
>Fecha: lunes 1 de febrero de 1999 21:47
>Asunto: Re: [perl] otra duda
>
>
>On Sat, 30 Jan 1999, Manuel Pérez López wrote:
>
>> Buenas:
>>
>> El otro día, me encontré una página que, tras darle la url de mi
>> página, me sacó por pantalla este trozo de texo:
>>
>> $ Conectando con www.arrakis.es
>> $ Solicitando página http://www.arrakis.es/~mapelo/portada.htm
>> $ Respuesta de www.arrakis.es: HTTP/1.1 200 OK
>>
>> por lo que supuese que estaba comprobando la existencia de tal página.
>>
>> El proceso que sigue me ha interesado muchisimo, ya que yo tambien
>> quisiera programar algún sencillo script en Perl que pudiera comprobar
>> la existencia de páginas. ¿Alguien tiene idea de como empezar?
>
>En CPAN <http://www.perl.com/CPAN/> encuentras libwww-perl que tiene todo
>lo que quieras y más para comunicarte con un servidor de WEB.
>
>Ahora que si quieres _entender_ el asusto leete la documentación del
>protocolo HTTP 1.1  que puedes encontrar en <http://www.w3.org/Protocols/>
>
>Al final un mini script que comprueba a pata (sin usar módulos extras) la
>existencia de una página sin traer su contenido y para usarse como:
>
>$ ./chkpage www.w3.org/Protocols/
>Probando conexión con 'www.w3.org'
>Solicitando '/Protocols/'
>Status: 200 OK
>Protocolo: HTTP/1.1
>Extra headers:
>Date: Mon, 01 Feb 1999 20:19:15 GMT
>Server: Apache/1.2.6
>Last-Modified: Thu, 28 Jan 1999 14:15:58 GMT
>ETag: "2f3d64e8-4b89-36b0711e"
>Accept-Ranges: bytes
>Connection: close
>Content-Type: text/html; charset=ISO-8859-1
>
>
>Saludos
>
>Salvador Ortiz
>
>=========== CUT ===========
>#!/usr/bin/perl -w
>use IO::Socket::INET;
>
>my $CRNL = "\015\012"; # por portabilidad
>
>my ($addr, $URI) = split('/',$ARGV[0],2);
>print "Probando conexión con '$addr'\n";
>my $sock = IO::Socket::INET->new(PeerAddr => $addr,
>PeerPort => 'http(80)',
>Proto => 'tcp');
>print "Solicitando '/$URI'\n";
>print $sock "HEAD /$URI HTTP/1.0${CRNL}Accept: */*$CRNL$CRNL";
>my $resp = $sock->getline;
>my ($proto, $status, $words) = $resp =~ m|HTTP/(\d.\d) (\d{3}) (.*)|;
>print "Status: $status $words\nProtocolo: HTTP/$proto\n";
>print "Extra headers:\n";
>while($resp = $sock->getline) {
>    print $resp;
>}
>
>
>--------- Pie de mensaje --------------------------------
>Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
>Cancelar inscripcion:
>mail to: majordomo@tlali.iztacala.unam.mx
>text   : cancelacion perl
>
>--------- Pie de mensaje --------------------------------
>Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
>Cancelar inscripcion:
>mail to: majordomo@tlali.iztacala.unam.mx
>text   : cancelacion perl
>
>

--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : cancelacion perl