Re: [Cascavel-pm] Problemas em recuperar algumas páginas da Web via Perl

João Gabriel jamorreu em gmail.com
Sexta Dezembro 16 09:35:08 PST 2005


Como eu já lhe disse, já aconteceu comigo de alguns servidores
bloquearem acesso a suas páginas por um socket Perl...

--
[]'s
João Gabriel
CGiClube.net - www.cgiclube.net
Vitória Perl Mongers - vitoria.pm.org



Em 16/12/05, gtassis em dcc.ufmg.br<gtassis em dcc.ufmg.br> escreveu:
>
> Para várias URLs, o código PERL abaixo consegue baixar corretamente as
> páginas HTML relacionadas. Só que não funciona para algumas URLs. Por
> exemplo, para uma determinada URL, o conteúdo de $página retorna um
> cabeçalho e um texto HTML que não corresponde à página em questão. Não sei
> porque isto está acontecendo com algumas URLS.
>
> Isto é algo normal, devido a um possível bloqueio do servidor com
> relação ao acesso de suas páginas via Perl? Ou existe algum erro no código
> Perl abaixo? Alguém já passou por algum problema parecido e pode me
> ajudar?
>
> Desde já, agradeço qualquer retorno.
> Abraços.
>
> ----------------------------------------------------------------------------------------
> $AF_INET = 2;
> $SOCK_STREAM = 1;
> $port = 80 if ($port == 0);
> ($name, $aliases, $proto) = getprotobyname("tcp");
> ($name, $aliases, $type, $len, $thisaddr) = gethostbyname($client_host);
> ($name, $aliases, $type, $len, $thataddr) = gethostbyname($server_host);
>
> ($a, $b, $c, $d) = unpack('C4', $thataddr);
> if (($a eq "") && ($b eq "") && ($c eq "") && ($d eq "")) {
> print "ERRO: host $server_host desconhecido!\n";
> return "";
> }
>
> $sockaddr = "S n a4 x8";
> $this = pack($sockaddr, $AF_INET, 0, $thisaddr);
> $that = pack($sockaddr, $AF_INET, $port, $thataddr);
>
> if (socket(S, $AF_INET, $SOCK_STREAM, $proto) == false){
> print "ERRO: Não se pode criar o soquete!\n";
> return "";
> }
>
> if (connect(S, $that) == false) {
> print "ERRO: Não se pode conectar ao servidor $server_host, porta
> $port\n"; return "";
> }
>
> print S "GET /$document HTTP/1.0\n\n";
> print S "Host: $server_host\n\n";
> @pagina = <S>;
> $pagina = "@pagina";
> close S;
> ----------------------------------------------------------------------------------------
>
>
>
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


Mais detalhes sobre a lista de discussão Cascavel-pm