LINUX.ORG.RU

Как из скрипта проверить работоспособность HTTP-proxy?


0

0

Т. е. нужно проверить, что через эту прокси можно выкачивать инф-ю. Сразу напрашиваеться telnet&&echo 'OK', но к сожалению, telnet не отключиться, а будет висеть и результат никогда не появиться... :-((

anonymous

Может как-нть жестоко извратиться wget-ом, а не telnet-ом? Хотя висеть он тоже может долго, особенно на диалупе :)

phoenix ★★★★
()

как нибудь так:

#!/usr/bin/perl -w

use LWP::UserAgent;
use strict;

$SIG{ALRM} = sub{die "timeout"};

eval{
  alarm(60); # in seconds
  my $ua = LWP::UserAgent->new;
  $ua->env_proxy;
  $ua->proxy(http  => "http://$ARGV[0]");
  $ua->no_proxy(qw(no se fi));
  my $req = HTTP::Request->new(GET => 'http://www.ru/');
  print $ua->request($req)->as_string;
};

if($@ and $@=~/timeout/){
  print "error\n";
}

File y.pl saved
File y.pl not changed so no update needed.
[vilfred@observ vilfred]$ perl y.pl proxy.void.ru:8080
HTTP/1.1 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Length: 2925
Content-Type: text/html
Client-Date: Mon, 17 Jan 2005 16:38:12 GMT
Client-Response-Num: 1


                <DIV class=Section1>
                <P class=MsoNormal
                style="mso-list

vilfred ☆☆
()
Ответ на: комментарий от anonymous

так что получилось в итоге? интересно же!

anonymous
()

Попробуй послать через прокси запрос netcat'ом (он, в отличие от telnet'а, понимает stdin).

Например,

echo -e 'GET ok HTTP/1.0\n'| netcat www.google.com 80

Вполне сразу выдает ответ.

Только как с прокси работать я не в курсе.

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

> Только как с прокси работать я не в курсе

Я в курсе :-)

Запрос должен выглядеть примерно так:

GET http://www.ru/ HTTP/1.0\n\n

:-)

no-dashi ★★★★★
()
Ответ на: комментарий от theserg

TIMELIMIT(1)                                         TIMELIMIT(1)

NAME
       timelimit - spawn a subprocess and if the child does not finish within the
       time limit either kill it, or exit, leaving the child in the background.

       netpipes 4.2

SYNOPSIS
       timelimit [ -v ] [ -nokill ] time command args

DESCRIPTION
       timelimit is used to limit the amount of foreground wallclock time a  pro-
       cess  consumes.   Once the time limit expires timelimit will kill the pro-
       cess unless -nokill is specified.

       -v adds some diagnostic messages.

EXAMPLES
SEE ALSO
       netpipes (1)

theserg ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.