19°C
завтра: 20°C
Погода в Перми
19°C
утром16°C
днем20°C
завтра20°C
Подробно
 94,09
−0.2320
Курс USD ЦБ РФна 19 апреля
94,0922
−0.2320
 100,53
+0.2529
Курс EUR ЦБ РФна 19 апреля
100,5316
+0.2529
PRM.Форум /Компьютеры Интернет Связь / Программирование /

туплю... но как проверить валидность URL на Perle?

  • На PHP, наверно, и
    $fp = @fopen ($URL, "r"); if (!$fp) { die ("Cannot open website $URL!"); }
    проканает... а на Перле?... и желательно без необходимости установки навороченного модуля... или просто чтоб модуль поместить в подкаталог lib и работало.... кто поможет? :-)

    Осторожно, злой кот!

  • На перле тоже проканает...

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

  • Дык, не канает :-)

    #!/usr/bin/perl
    print "Content-type: text/html\n\n";
    $url="ЗдесьПишемУрлу";
    $r=open FILE,"$url";
    if ($r) { print "OK"; }
    else { print "Can not open $url!"; }

    дает "Can not open... " для любого адреса....

    не могу же я, как на Сишке написать с fopen - она разве есть в Перле? :-) попробовал

    #!/usr/bin/perl

    $url="ЗдесьПишемУРЛу";
    print "Content-type: text/html\n\n";

    use IO::File;
    $fh = new IO::File;
    if ($fh->open("< $url")) {
    print ;
    $fh->close;
    }
    else {
    print "Can not open $url!";
    }

    тож не канает... киньте кто-нибудь работающий пример плз...

    Осторожно, злой кот!

  • тебе с пользованием библиотекой lwp подойдет?
    приду домой поищу в старых своих кодах

  • use LWP::UserAgent;
    $ua = LWP::UserAgent->new;
    $ua->agent("MyApp/0.1 ");
    # Create a request
    my $req = HTTP::Request->new(Get => 'http://ngs.ru');
    my $res = $ua->request($req);
    if ($res->is_success) {
    print "ok! \n";
    }
    else {
    print "[censored]! \n";
    }

  • Спасибо за ответ, только вот ничего, кроме самого файла со скриптом, не OK, все остальные УРЛы censored :-(
    LWP установлен, проверено. ActivePerl 5.6.1 на WinXPSP2. Проверил также на Apache/1.3.28 (Unix) с Перлом 5.76 - там упорно выдает Internal error 500, хотя модуль тож есть...

    Мож в самом Useragent.pm че-нить ковырнуть, таймаут какой-нибудь? :-)

    Осторожно, злой кот!

  • Ковырять не надо!
    Вот: $ua->timeout(10);
    Должно помочь.

  • Ты будешь смеяться - не помогло :-( Разница в том, что теперь и на собственный URL тоже [censored] :-(

    Осторожно, злой кот!

  • А пробовал таймаут ставить побольше?
    Хотя 10 сек. итак немало.
    А ты уверен что твоя прога может в инет ходить? Может у тебя прокси используется или фаервол?Посмотри какой-нибудь программулиной уходят ли от нее пакеты.

Записей на странице:

Перейти в форум

Модератор: