Показать сообщение отдельно

  #22  
Старый 05.07.2006, 00:35
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Накатал на скорую руку.
Код:
#!/usr/bin/perl
use IO::Socket;
use Thread;

$serv = "president.yandex.ru";
$page = 'question.xml?id=208372';

$n=$mycount=0;

open(PROXY, 'ElseProxy.txt');
PROXY->autoflush(1);
STDOUT->autoflush(1);
for($nn=0;$nn<256;$nn++){ Thread->new(\&start_sub) }
while($mycount<256){ sleep(1) };
close(PROXY);

sub start_sub(){
local($proxy,$s,$buf,$url);
  while($proxy=<PROXY>){TRY:{
    $s = IO::Socket::INET->new(PeerAddr=>$proxy)||next;
    print $s <<HTTP;
GET http://$serv/$page HTTP/1.1
Host: $serv
User-Agent: MSIE
Connection: close

HTTP
    read($s,$buf,0xfffff);
    close($s);
    if(($url)=$buf=~/window\.location\.href\s*\=\s*\'(http\:\/\/bs\.yandex\.ru\/count\/[^\']+)/i){
      $n++;
      print "$n - $url\n";
      $s = IO::Socket::INET->new(PeerAddr=>$proxy); 
      print $s <<HTTP;
GET $url HTTP/1.1
Host: bs.yandex.ru
Referer: http://$serv/$page
User-Agent: MSIE
Connection: close

HTTP
      close($s);
    }
  }}
  $mycount++;
}

Последний раз редактировалось hidden; 05.07.2006 в 01:14.. Причина: Ускорил
 
Ответить с цитированием