Форумы портала PHP.SU » » Работа с сетью » анонимный прокси-сервер на php

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

1. sharp-net - 25 Июля, 2011 - 15:33:12 - перейти к сообщению
гуру поискал и тут и в гугле, ничего стоящего не нахожу...
нужно для парсинга яндекса замутить или класс на пхп или что-то подобное что меняет ip в цикле, а то капча уже весь мозг выела...спасайте.
Собственно вопрос:
Какими способами можно подменять ip средствами пхп (и алгоритм как это вообще работает)

Можно пинок в сторону нормального урла...сразу скажу что я админ, программил уже лет 10 назад. Заранее спасибо кто ответит
(Добавление)
и плиз если не лень поподробнее...на пхп пишу впервые, скрипт уже парсит все гуд с ним....только вот прокси явно не хватает...
2. LIME - 25 Июля, 2011 - 15:39:04 - перейти к сообщению
sharp-net подменять ip средствами php нет смысла вы не получите ответ от сервера
если вы получаете страницу используя CURL то там можно подключаться через прокси
(Добавление)
http://fineproxy[dot]ru/
(Добавление)
http://php.su/functions/?curl_setopt параметр CURLOPT_PROXY
3. sharp-net - 25 Июля, 2011 - 15:42:44 - перейти к сообщению
CURL не знаю делаю так -
$URL=$mm[1][$url_count];
$content=file_get_contents($URL);
(Добавление)
а чтобы я больше не мучал остальных ответьте пожалуйста почему не получу ответ от сервера? поидее же ип то меняется тоесть на стороне сервера новый ип анонимной прокси не баненный....
4. LIME - 25 Июля, 2011 - 15:50:44 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $ch=curl_init ($URL);
  3. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);// настройка для того чтоб поместить вывод в переменную а не в браузер
  4. curl_setopt($ch,CURLOPT_PROXY,'прокся:порт');
  5. $html=curl_exec($ch);  
  6. ?>

(Добавление)
sharp-net пишет:

а чтобы я больше не мучал остальных ответьте пожалуйста почему не получу ответ от сервера? поидее же ип то меняется тоесть на стороне сервера новый ип анонимной прокси не баненный....

используя прокси вы не меняете свой ip вы только направляете свой запрос через прокси
если вы каким-то образом подделаете свой ip то на него и отправится ответ
5. sharp-net - 25 Июля, 2011 - 16:20:33 - перейти к сообщению
LIME пишет:
используя прокси вы не меняете свой ip вы только направляете свой запрос через прокси
если вы каким-то образом подделаете свой ip то на него и отправится ответ


ну так это вроде и надо чтобы (в данном случае) яндекс видел что к нему запрос приходит от анонимного прокси (не моего ip) а прокся уже заворачивает полученный ответ на мой ip
(Добавление)
sharp-net пишет:
LIME пишет:
используя прокси вы не меняете свой ip вы только направляете свой запрос через прокси
если вы каким-то образом подделаете свой ip то на него и отправится ответ


ну так это вроде и надо чтобы (в данном случае) яндекс видел что к нему запрос приходит от анонимного прокси (не моего ip) а прокся уже заворачивает полученный ответ на мой ip


за ответы огромеднейшие спасибо
6. sharp-net - 05 Августа, 2011 - 08:46:20 - перейти к сообщению
все почти завелось, проблема в том:
1. Maximum number of open connections reached. Maximum number of open connections reached.
2. Apache Server at www[dot]fast-const[dot]ru Port 8080
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
3. Fatal error: Maximum execution time of 600 seconds exceeded in Z:\home\pars\www\ip.php on line 32

Вопросы:
1. В курле закрывать сессии надо постоянно что ли?
2. Как поставить таймаут чтобы не видет этой мессаги? (или как это решить, не верится мне что это связь тупит)
3. Как поставить таймауты сек на 5 чтоли - а то и так раздвинул на 600 и не хватает - значит косячу.


Текст собственно.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $check_proxy = curl_init();
  4. $check_proxy_url = "http://www.fast-const.ru/fpi/vs_proxy/vs_check.php";
  5. //******************************************************************************************************************************
  6. $timeout = 5;
  7. $time_count = 1;
  8. //Проверка на совпадение в proxy.txt выход в new_proxy.txt
  9. $file_array = file("proxy.txt");
  10. $different = array_unique($file_array);
  11. $result=implode('',$different);
  12. preg_match_all('/([.\d]{7,15})[:]([\d]{1,6})/i',$result,$ip_port);
  13.  
  14. for ($good_proxy_count=0; $good_proxy_count<=count($different); $good_proxy_count++) {
  15. $fp = @fsockopen($ip_port[1][$good_proxy_count], $ip_port[2][$good_proxy_count], $errno, $errstr, $timeout);
  16.   if($fp) {
  17.      echo "(".$ip_port[1][$good_proxy_count].") "."Не дохлый  "."<br>";
  18.          echo "(".$ip_port[0][$good_proxy_count].") "."Не дохлый с портом  "."<br>";
  19.         $randip = $ip_port[0][$good_proxy_count];
  20. /*
  21.         curl_setopt($check_proxy, CURLOPT_URL, $check_proxy_url);
  22.         curl_setopt($check_proxy, CURLOPT_HEADER, 0);
  23.         curl_setopt($check_proxy, CURLOPT_PROXY,$randip);
  24.         curl_setopt($check_proxy, CURLOPT_TIMEOUT, 3000);
  25.         preg_match_all('/([.\d]{7,15})/',curl_exec($check_proxy),$anonymous);
  26.         echo "(".$anonymous.") "."Проверка на анонимность   "."<br>";
  27. */  
  28.            $failed = 0;  
  29.         for($i = 0; $i < 5; $i++) {
  30.                 curl_setopt($check_proxy, CURLOPT_URL, $check_proxy_url);
  31.                 curl_setopt($check_proxy, CURLOPT_PROXY, $randip);
  32.                 curl_setopt($check_proxy, CURLOPT_TIMEOUT, 3000);
  33.                 $ss=curl_exec($check_proxy);
  34.                 (!preg_match('/([.\d]{7,15})/', $ss)) and (++$failed > 2);
  35.         }
  36.         $failed > 2 ? плохой : хороший;
  37.  
  38.                  } else {
  39.        //echo "(".$errno.") ".$errstr."\n\n".'<br>';
  40.                   }
  41.    }
  42. //print_r ($_SERVER[REMOTE_ADDR]);
  43. //print_r ($_SERVER[HTTP_X_FORWARDED_FOR]);
  44. //print_r ($_SERVER[HTTP_CLIENT_IP]);
  45. //dbquery("INSERT INTO ".DB_PROXY_RES." (proxy_res_bad) SELECT proxies_good FROM ".DB_PROXIES." WHERE proxies_id = '".$check['proxies_id']."'");      
  46. //dbquery("DELETE FROM ".DB_PROXIES." WHERE proxies_id = '".$check['proxies_id']."'");
  47. //$ip_arr = array();
  48. //$ip_arr[] = '188.142.49.254:8080';
  49. //$randip = $ip_arr[rand(0,sizeof($ip_arr)-1)];
  50. //$result_shmon_url = curl_exec($check_proxy);
  51. curl_close($check_proxy);
  52.  ?>
  53.  
  54.  
7. higub - 04 Декабря, 2015 - 14:49:14 - перейти к сообщению
когда я смотрю на всё это уменя возникает огромнейший вопрос зачем вам анонимный proxy сервер? Закатив глазки
8. Viper - 04 Декабря, 2015 - 16:20:17 - перейти к сообщению
higub ув. Старший археолог! Смотрите в дальнейшем на дату поста, дабы не поднимать умершие темы.

 

Powered by ExBB FM 1.0 RC1