Как работать с прокси

часто задаваемые вопросы по программе
Ответить
poikl
Сообщения: 12
Зарегистрирован: 13 ноя 2008, 20:34

Как работать с прокси

Сообщение poikl » 13 ноя 2008, 20:37

Как через проксю
$proxy ='11.11.11.11:80';
попасть на эту страничку ?
$browser->navigate("ya.ru");
$browser->wait(1);

poikl
Сообщения: 12
Зарегистрирован: 13 ноя 2008, 20:34

Re: Как работать с прокси

Сообщение poikl » 13 ноя 2008, 21:26

poikl писал(а):Как через проксю
$proxy ='11.11.11.11:80';
попасть на эту страничку ?
$browser->navigate("ya.ru");
$browser->wait(1);
нашел
echo $browser->enable_proxy("all connections","202.158.165.82:80");

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2604
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Сообщение bigfozzy » 17 ноя 2008, 19:01

ага, а

$browser->disable_proxy("all connections"); - отменяет прокси.
Еще при принудительной остановки скрипта идет сброс прокси ...

mastak
Сообщения: 2
Зарегистрирован: 13 апр 2009, 23:04

Сообщение mastak » 15 апр 2009, 13:22

А соксы включить можно каким-нибудь образом?
Например:
$browser->enable_socks("all connections","202.158.165.82:80")

cathderay
Сообщения: 32
Зарегистрирован: 09 апр 2009, 23:05

Сообщение cathderay » 15 апр 2009, 15:11

если прокси требует авторизацию

Код: Выделить всё

$browser->set_default_authorization("юзер","пасс");

Andipas
Сообщения: 9
Зарегистрирован: 28 апр 2009, 18:44

Сообщение Andipas » 28 апр 2009, 18:48

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

Andipas
Сообщения: 9
Зарегистрирован: 28 апр 2009, 18:44

Сообщение Andipas » 30 апр 2009, 09:17

Andipas писал(а):Я пользую публичные прокси. Как во время выполнения скрипта можно отследить когда прокси умрет?
Понял как это можно сделать, только вот теперь другой вопрос:
написал такую функцию:

Код: Выделить всё

require("E:/Program Files/Xedant/Human Emulator/Templates/xedant_human_emulator.php");

get_proxy();

function get_proxy()
{
	$proxy = file("proxy.txt");
	echo 'Ищем проксю<br>';
	for ($j=0;$j<count($proxy);$j++)
	{
		echo '-'.$j;
		// устанавливаем текущее прокси enable_proxy($connection,$proxy) - сделать прокси на заданное соединение
		$browser->enable_proxy("all connections",$proxy[$j]);
		// проверяем прокси на нужном нам урле и нужное нам время
		// если за 15 секунд мы не подключились к google прокси плохая
		$connect = $browser->check_connection("http://google.com",15);
		if($connect)
		{
			echo '<br>Нашли и установли хорошую проксю : '.$proxy[$j];
			break;
		}
		// если плохая прокся ищем дальше
		if(!$connect)
		{
			$browser->disable_proxy("all connections");
			continue;
		}
	}
}
После запуска, в поле "Отладка" выдает такую ошибку:

Код: Выделить всё

Ищем проксю
-0 Fatal error: Call to a member function enable_proxy() on a non-object in E:\Program Files\Xedant\Human Emulator\My Scripts\Temp\getproxy.php on line 14 
Если выношу код из функции в тело программы, все нормально работает. Почему так?

Аватара пользователя
Support
Site Admin
Сообщения: 903
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Сообщение Support » 30 апр 2009, 18:22

наши объекты (в том числе и объект $browser из данного примера) глобальные объекты, для того что бы их можно было использовать в функциях нужно указать в теле фукции что объекты глобальные будет выглядеть так:

Код: Выделить всё

function get_proxy() 
{ 
   global $browser;
   $proxy = file("proxy.txt"); 
   echo 'Ищем проксю<br>'; 
   for ($j=0;$j<count($proxy);$j++) 
   { 
      echo '-'.$j; 
      // устанавливаем текущее прокси enable_proxy   ($connection,$proxy) - сделать прокси на заданное соединение 
      $browser->enable_proxy("all connections",$proxy[$j]); 
      // проверяем прокси на нужном нам урле и нужное нам время 
      // если за 15 секунд мы не подключились к google прокси плохая 
      $connect = $browser->check_connection("http://google.com",15); 
      if($connect) 
      { 
         echo '<br>Нашли и установли хорошую проксю : '.$proxy[$j]; 
         break; 
      } 
      // если плохая прокся ищем дальше 
      if(!$connect) 
      { 
         $browser->disable_proxy("all connections"); 
         continue; 
      } 
   } 
}

aqf2009
Сообщения: 5
Зарегистрирован: 06 май 2009, 15:02

Сообщение aqf2009 » 08 май 2009, 23:12

mastak писал(а):А соксы включить можно каким-нибудь образом?
Например:
$browser->enable_socks("all connections","202.158.165.82:80")
Тоже очень интересует тема с соксами. :) Когда будет эта возможность реализована?

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2604
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Сообщение bigfozzy » 10 июн 2009, 16:12

соксыц сделаны - можно пользоваться )

Ответить