The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PHP fsockopen через прокси "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"PHP fsockopen через прокси "  
Сообщение от Summoner email on 12-Апр-09, 21:29 
Проблема следующего рода... если приходится открывать соединение через прокси (Серию прокси) выдается ошибка при попытки получения контента с сайта (В случае если он https)
вот написал простейший  код что бы проверить может гдето запутался тут тоже самое:
$proxy = '62.94.22.204';
$proxy_port = '8080';
$host = 'banking.ukrgarant.com';
$host_port = '443';
$fp = @fsockopen($proxy, $proxy_port);
if ($fp)
{
    fputs($fp, 'CONNECT '.$host.':'.$host_port.' HTTP/1.1'."\r\n");
    fputs($fp, 'Connection: Close'."\r\n\r\n");
    fputs($fp, 'GET / HTTP/1.1'."\r\n");
    fputs($fp, 'Host: banking.ukrgarant.com'."\r\n");
    fputs($fp, 'User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.8) Gecko/2009033100 Ubuntu/9.04 (jaunty) Firefox/3.0.8'."\r\n");
    fputs($fp, 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'."\r\n");
    fputs($fp, 'Accept-Language: ru,en-us;q=0.7,en;q=0.3'."\r\n");
    fputs($fp, 'Accept-Encoding: gzip,deflate'."\r\n");
    fputs($fp, 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'."\r\n");
    fputs($fp, 'Keep-Alive: 300'."\r\n");
    fputs($fp, 'Connection: keep-alive'."\r\n");
    fputs($fp, 'Cookie: PHPSESSID=uioiaatus86u713jpchi31r8o0'."\r\n");
    fputs($fp, 'Cache-Control: max-age=0'."\r\n");
    fputs($fp, 'Connection: Close'."\r\n\r\n");
    while(!feof($fp))
    {
        echo fgets($fp, 4096);
    }
}

Вот ответ сервера
HTTP/1.1 400 Bad Request Date: Sun, 12 Apr 2009 17:21:48 GMT Server: Apache/2.2.3 (CentOS) Content-Length: 226 Connection: close Content-Type: text/html; charset=iso-8859-1
Bad Request

Your browser sent a request that this server could not understand.


Подскажите плз что я делаю неправильно.

Заранее благодарен.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PHP fsockopen через прокси "  
Сообщение от svn (??) on 13-Апр-09, 00:26 
>Подскажите плз что я делаю неправильно.

connect это отдельный запрос к прокси.

Не надо в него впихивать запрос к сервису. Это 2 разные запроса.
Сначала connect, а уж потом (после успешного ответа) можно посылать http запросы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "PHP fsockopen через прокси "  
Сообщение от Summoner email on 13-Апр-09, 08:50 
Изменил скрип получилось теперь вот так

$proxy = 'XXX.XXX.XXX.XXX';
$proxy_port = '3128';
$host = 'banking.ukrgarant.com';
$host_port = '443';
$fp = @fsockopen($proxy, $proxy_port);
if ($fp)
{
    $query = 'CONNECT '.$host.':'.$host_port.' HTTP/1.1'."\r\n";
    $query .= 'Connection: Close'."\r\n\r\n";
        fputs($fp, $query);
        echo $query;
    while(!feof($fp))
    {
        $t = fgets($fp, 1024);
        echo $t."<br/>";
        if ($t == "\r\n")
        {
            break;
        }
    }
    
    $query = 'GET / HTTP/1.1'."\r\n";
    $query .= 'Host: banking.ukrgarant.com'."\r\n";
    $query .= 'User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.8) Gecko/2009033100 Ubuntu/9.04 (jaunty) Firefox/3.0.8'."\r\n";
    $query .= 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'."\r\n";
    $query .= 'Accept-Language: ru,en-us;q=0.7,en;q=0.3'."\r\n";
    $query .= 'Accept-Encoding: gzip,deflate'."\r\n";
    $query .= 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'."\r\n";
    $query .= 'Keep-Alive: 300'."\r\n";
    $query .= 'Connection: keep-alive'."\r\n";
    $query .= 'Cookie: PHPSESSID=uioiaatus86u713jpchi31r8o0'."\r\n";
    $query .= 'Cache-Control: max-age=0'."\r\n";
    $query .= 'Connection: Close'."\r\n\r\n";
    fputs($fp, $query);
    echo $query;
    while(!feof($fp))
    {
        echo fgets($fp, 4096);
    }
}

Результат выполнения такой
CONNECT banking.ukrgarant.com:443 HTTP/1.1
Connection: Close

GET / HTTP/1.1
Host: banking.ukrgarant.com
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.8) Gecko/2009033100 Ubuntu/9.04 (jaunty) Firefox/3.0.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=uioiaatus86u713jpchi31r8o0
Cache-Control: max-age=0
Connection: Close

Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

    Hint: https://banking.ukrgarant.com/

Apache/2.2.3 (CentOS) Server at banking.ukrgarant.com Port 443


Что-то опять не то...
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "PHP fsockopen через прокси "  
Сообщение от Summoner email on 13-Апр-09, 08:53 
Чуть не забыл, Соединение с проксей выдало:
HTTP/1.0 200 Connection established
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "PHP fsockopen через прокси "  
Сообщение от JohnProfic on 13-Апр-09, 17:41 
>Что-то опять не то...

Эх, а кто, собственно, будет делать ssl? Прокси сервер может, если его правильно настроить. После беглого просмотра документации php получается, что через fsockopen такого сделать нельзя. Используйте curl, он вроде умеет.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "PHP fsockopen через прокси "  
Сообщение от svn (??) on 13-Апр-09, 19:17 
>Используйте curl, он вроде умеет.

cURL умеет и через прокси пролезать сам, и ssl ))

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру