Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Выполнение скрипта через proxy


Автор: Logree 31.8.2007, 10:12
Как  вообще работать с proxy через php  небольшой пример и  пара функций если можно..

Автор: Logree 1.9.2007, 22:58
я так понял раз ни кто не отвечает значит я спросил какую то  фигню...   ладно закрывайте тему

Автор: werdy 14.9.2007, 11:56
Возможно человеку требуется пробиться через Basic авторизацию из скрипта, тогда так:
Вызываем http://domain.ru/index.php?par=111
Код

<?php
 $fp = fsockopen("domain.ru", 80, $errno, $errstr, 30);
 if (!$fp) {
  echo "$errstr ($errno)<br />\n";
 } else {
  $out = "GET /index.php?par=111 HTTP/1.1\r\n";
  $out .= "Host: domain.ru\r\n";
  $out .= "Authorization: Basic ".base64_encode("имя:пароль")."\r\n";
  $out .= "Connection: Close\r\n\r\n";
  fwrite($fp, $out);
  while (!feof($fp)) {
   echo fgets($fp, 128);
  }
  fclose($fp);
 }
?>


Автор: jinn 16.9.2007, 13:37
нет почему же фигню просто обьсни поподробнее напрмиер какие именно покси юзаются?если http/https о легче.еже ли соксы то советую изпользовать мой класс http://forum.vingrad.ru/forum/topic-172561/view-getlastpost.html

чуть позже будет класс по http проксям щас лень писать как выложу то тут отписать постораюсь


werdy, ты предложил просто авторизацию методом Basic на сайте,а челу нужна работа через прокси!А если используется авторизация на проксе то вместо 
Код

 $out .= "Authorization: Basic ".base64_encode("имя:пароль")."\r\n";

надо юзать:
Код

$out .= "Proxy-Authorization: Basic ".base64_encode($login.":".$pass)."\r\n\r\n";



Logree, а что именно ты подразумеваешь под работай с прокси?тебе надо connect или get вообще?если connect то(пример приведен с авторизацией на проксе,метод basic):
Код

<?php  


 $fp = fsockopen("адрес", 80, $errno, $errstr, 30);    
 if (!$fp) {    
  echo "$errstr ($errno)<br />\n";    
 } else {    
  $out = "Connect адрес:порт HTTP/1.1\r\n";    
  $out .= "Host: адрес:порт\r\n";    
  $out .= "Proxy-Authorization: Basic ".base64_encode("логин:пароль")."\r\n";    
  $out .= "Connection: Close\r\n\r\n";    
  fwrite($fp, $out);    
  while (!feof($fp)) {    
   echo fgets($fp, 128);    
  }    
  fclose($fp);    
 }
?>
  
если get то как у werdy только с заменой строки авторизации на проксе(см.выше) или вообще без нее(если авторизация на проксе не требуется)

Автор: console 16.9.2007, 23:37
используйте cURL

Автор: jinn 17.9.2007, 11:14
console, cURL не всегда хорошо побродив по форуму нашел не мало тем где упоминались его минусыsmileну ведь с сокетами лучше(имхо),т.к поддерживается везде где разрешены исх.подключения!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)