[perl] otra duda
Salman P. S. L.
correo@salmansl.es
Mon, 15 Feb 1999 16:49:22 +0100
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"
Content-Length: 19337
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