petar_kirov
Registered
Здравейте. Някой може ли да ми каже защо това нещо не ми тръгва? Това е генератор на заявки от списък с проксита. Източник тук http://mytech.bg/index.php?type=dev&rid=5&srcid=820
Ще съм много благодарен на отзовалите се.
<?php
// Изключваме извеждането на евентуални предупреждения от PHP
error_reporting(0);
// Задаваме url, който да получава Get заявките
// "/" в края на адреса е задължителен!
$url_1 = "http://www.thedomain.com/";
// Задаваме сървър и порт
$theserver = "thedomain:80";
// Задаваме броя на заявките, които ще се генерират при всяко стартиране
$randnr = 2;
// Ако ръчно сте задали адресите в proxy.txt, заменете функцията date()
// с дата, която сте записали в update.txt пр: $today = "2008-03-31";
$today = date('Y-m-d');
/* Понеже взимаме списъка с proxy адресите от външен сайт, скрипта ще работи по-бързо ако извличаме и записваме веднъж дневно тези адреси в локален файл - proxy.txt и после използваме този файл вместо обръщение към отдалечен сървър */
/* Сега да проверим дали локалния ни списък е обновяван днес, и ако не е да го изтеглим и запишем в proxy.txt */
// Прочитаме update.txt
$lines = file("update.txt");
if(trim($lines[0]) == $today){
// ДА – списъкът е актуален. Взимаме го в променливата $proxies
$proxies = file("proxy.txt");
}else{
// НЕ – необходимо е обновяване. Взимаме списъка от steganos.com
$proxies = file('http://www.steganos.com/?area=updateproxylist');
$size = count($proxies);
$openfile = fopen("proxy.txt","w+");
// Записваме новия списък в локалния файл proxy.txt
for($x=0;$x<$size;$x++){
$line =trim($proxies[$x]);
fwrite($openfile, $line);
if($x!=$size-1){
fwrite($openfile, " \r\n");
}
}
fclose($openfile);
// Отбелязваме че списъкът е обновен днес в update.txt
$openfile = fopen("update.txt","w+");
fwrite($openfile, $today);
fclose($openfile);
}
// Взимаме определения чрез $randnr брой случайни адреси от списъка
$getrand = array_rand($proxies, $randnr);
// Изклчваме „timed out”, тъй като изпълнението на скрипта може да отнеме
// повече време от определения на сървъра лимит
set_time_limit(0);
for( $x = 0; $x < $randnr; $x++ ){
// Сега ще отделим адреса от порта
$PROXY_URL=$proxies[$getrand[$x]];
$proxyarr = explode(":", $PROXY_URL);
$address = trim($proxyarr[0]);
$port = trim($proxyarr[1]);
// Следващия код създава хедъра на HTTP заявката
$headerinfo =array(
'User-Agent' => 'my User Agent (proxy.php)',
'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/png, */*',
'Pragma' => 'no-cache',
'Connection' => 'keep-alive');
reset($headerinfo);
// Вече сме готови да изпратим заявка през proxy
$fp=fsockopen($address,$port);
if($fp) {
fputs($fp,"GET $url_1 HTTP/1.1 \r\n ");
fputs($fp,"Host: $theserverrn ");
reset($headerinfo);
while(list($header,$value)=each($headerinfo)) {
fputs($fp,"$header: $valuern");
// Да оставим малко време между заявките
sleep(2);
}
fputs($fp,"\r\n");
fclose($fp);
}
}
?>
Ще съм много благодарен на отзовалите се.
<?php
// Изключваме извеждането на евентуални предупреждения от PHP
error_reporting(0);
// Задаваме url, който да получава Get заявките
// "/" в края на адреса е задължителен!
$url_1 = "http://www.thedomain.com/";
// Задаваме сървър и порт
$theserver = "thedomain:80";
// Задаваме броя на заявките, които ще се генерират при всяко стартиране
$randnr = 2;
// Ако ръчно сте задали адресите в proxy.txt, заменете функцията date()
// с дата, която сте записали в update.txt пр: $today = "2008-03-31";
$today = date('Y-m-d');
/* Понеже взимаме списъка с proxy адресите от външен сайт, скрипта ще работи по-бързо ако извличаме и записваме веднъж дневно тези адреси в локален файл - proxy.txt и после използваме този файл вместо обръщение към отдалечен сървър */
/* Сега да проверим дали локалния ни списък е обновяван днес, и ако не е да го изтеглим и запишем в proxy.txt */
// Прочитаме update.txt
$lines = file("update.txt");
if(trim($lines[0]) == $today){
// ДА – списъкът е актуален. Взимаме го в променливата $proxies
$proxies = file("proxy.txt");
}else{
// НЕ – необходимо е обновяване. Взимаме списъка от steganos.com
$proxies = file('http://www.steganos.com/?area=updateproxylist');
$size = count($proxies);
$openfile = fopen("proxy.txt","w+");
// Записваме новия списък в локалния файл proxy.txt
for($x=0;$x<$size;$x++){
$line =trim($proxies[$x]);
fwrite($openfile, $line);
if($x!=$size-1){
fwrite($openfile, " \r\n");
}
}
fclose($openfile);
// Отбелязваме че списъкът е обновен днес в update.txt
$openfile = fopen("update.txt","w+");
fwrite($openfile, $today);
fclose($openfile);
}
// Взимаме определения чрез $randnr брой случайни адреси от списъка
$getrand = array_rand($proxies, $randnr);
// Изклчваме „timed out”, тъй като изпълнението на скрипта може да отнеме
// повече време от определения на сървъра лимит
set_time_limit(0);
for( $x = 0; $x < $randnr; $x++ ){
// Сега ще отделим адреса от порта
$PROXY_URL=$proxies[$getrand[$x]];
$proxyarr = explode(":", $PROXY_URL);
$address = trim($proxyarr[0]);
$port = trim($proxyarr[1]);
// Следващия код създава хедъра на HTTP заявката
$headerinfo =array(
'User-Agent' => 'my User Agent (proxy.php)',
'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/png, */*',
'Pragma' => 'no-cache',
'Connection' => 'keep-alive');
reset($headerinfo);
// Вече сме готови да изпратим заявка през proxy
$fp=fsockopen($address,$port);
if($fp) {
fputs($fp,"GET $url_1 HTTP/1.1 \r\n ");
fputs($fp,"Host: $theserverrn ");
reset($headerinfo);
while(list($header,$value)=each($headerinfo)) {
fputs($fp,"$header: $valuern");
// Да оставим малко време между заявките
sleep(2);
}
fputs($fp,"\r\n");
fclose($fp);
}
}
?>