|
|
|
|
|
для: trix
(28.07.2008 в 16:26)
| | Вот тут есть классы сокета с поддержкой sock4\5, так же автоматическим определением типа socks'a. С примером использования.
http://softtime.ru/forum/read.php?id_forum=1&id_theme=48560 | |
|
|
|
|
|
|
|
для: pav1uxa
(28.07.2008 в 15:42)
| | Спасибо за ответ, для понимания полезно :)
Но надо бы конечно SOCKS там немного по другому, нужно команды в бинарный вид переводить, вроде как! | |
|
|
|
|
|
|
|
для: trix
(28.07.2008 в 15:13)
| | если тип прокси HTTP то достаточно так
<?
$url="http://yoip.ru/"; # адрес сайта, с путем (например это могло бы быть http://yoip.ru/hz/chto/)
$domain="yoip.ru"; # домен сайта, можно www.yoip.ru
$ip="***.***.***.***"; # IP прокси
$port="**"; # порт прокси
$fp=fsockopen($ip, $port);
$header="GET $url HTTP/1.0\r\n".
"Host: $domain\r\n\r\n";
fputs($fp, $header);
$response="";
while (!feof($fp)) {
$response.=fgets($fp);
}
echo "<pre>".$response."</pre>";
?>
|
Это пример с минимальными хедерами через прокси HTTP типа. Так же тут не учитываются никакие таймауты... просто для наглядности. Если прокси рабочий, то скрипт будет работать.
А пот если типа прокси SOCK, тогда не знаю как... | |
|
|
|
|
|
|
|
для: Trianon
(27.07.2008 в 21:56)
| | Еще вот в продолжение темы! Может кто подскажет как данный например скрипт запустить через прокси, вот в нете нашел что-то но не работает!
<?php
$ip = "89.114.53.98";
$port = "8368";
$socks=fsockopen($ip,$port); //открываем соединение с прокси
if ($socks)
{
$h=hex2bin('05 01 00'); // передаем версию сокса , кол-во методов аутентификации и методы аутентификации
fwrite($socks,$h);
$list=bin2hex(fread($socks,2));// переводим ответ сокса в нормальный hex'овый вид
// проверяем на версию и метод аутентификации,
if ($list == '0500')
{
$list="";
$len=dechex(strlen($connect_host)); // длина адреса,переводится в шестнадцатиричный режим
$len=len_test($len);
$h=hex2bin("05 01 00 03 $len ".hex($server)." 00 ".dechex(80).""); //формируем запрос $server - //адресат и его порт (например яндекс)
fwrite($socks,$h);
$head = "GET / HTTP/1.0\r\n";
$head .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.52\r\n";
$head .= "Host: www.yandex.ru\r\n";
$head .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";
$head .= "Accept-Language: ru,en;q=0.9\r\n";
$head .= "Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n";
$head .= "Proxy-Connection: close\r\n\r\n";
fwrite($socks, $head);
while (!feof($socks))
{
$tmp = fgets ($socks,128);
print $tmp;
}
}
}
?>
|
Идея как я понимаю в том, сначала коннектимся к прокси, затем посылаем прокси адрес нужного домена и порт, затем на прокси отсылаем заголовки и в теории он должен выдать ответ от домена.
Но не работает, возможно я не правильно адрес и порт домена отсылаю? | |
|
|
|
|
|
|
|
для: trix
(27.07.2008 в 21:51)
| | Вот здесь пара ссылок
В моей реплике 19.07.2008 в 12:42 | |
|
|
|
|
|
|
|
для: Trianon
(27.07.2008 в 21:41)
| | Т.е. скрипт работает правильно ? Это уже радует :)
А может ссылочку покинете где почитать можно ? А то ни как ничего вразумительного не найти ! | |
|
|
|
|
|
|
|
для: trix
(27.07.2008 в 21:36)
| | >302 Found HTTP_FOUND - Запрошенный ресурс был временно перемещен на новый URI.
Данная страница из броузера нормально открывается без всяких переадресаций,
Это не так.
Браузер тоже получает такой отклик и честно идет за контентом на новый URL, сообщенный ему сервером в одном из полей отклика.
Я даже подскажу в каком - Location:
И таких прыжков, перед тем как показать страницу, браузер может сделать не один и не два.
Кроме того, перед тем как прыгнуть, браузер обычно будет вынужден еще кое чем заняться.
Сообщенные кукисы записать, например.
Резюме. Читайте стандарт. Просто так сказать "гоп" не выйдет. Придется сперва попрыгать. | |
|
|
|
|
|
|
|
для: Trianon
(27.07.2008 в 21:19)
| | 302 Found HTTP_FOUND - Запрошенный ресурс был временно перемещен на новый URI.
Это ничего не объясняет :) Данная страница из броузера нормально открывается без всяких переадресаций, а через скрипт 302 Found имеем !? Почему так ? | |
|
|
|
|
|
|
|
для: trix
(27.07.2008 в 20:37)
| | 302 - это не ошибка. Смотрите, что означает 302. | |
|
|
|
|
|
|
|
для: noob
(27.07.2008 в 18:56)
| | o_O Работает и правда !! Хмм стоит все рассписать для форума все и зарботало :)
Но возник другой вопрос, работает скрипт вроде но как-то крива, предыдущий пример все ок выдает а если например сделать на другую страницу в результате выдает не то что на самом деле на этой странице должно быть:
<?php
$url_info[path] = "/forum/read.php";
$url_info[host] = "softtime.ru";
$url_info[query] = "?id_forum=2&id_theme=51896";
$url_info[port] = 80;
?>
|
или вот еще для примера адрес:
http://www.webnames.ru/scripts/whois.pl?domain_name=100.100.100.100
через броузер нормально заходит, а через скрипт выдает ошибку 302
<?php
$url_info[path] = "/scripts/whois.pl";
$url_info[host] = "webnames.ru";
$url_info[query] = "?domain_name=100.100.100.100";
$url_info[port] = 80;
?>
|
На некоторых сайтах, выдает ошибку времени выполнения скрипта ! Почему так, гдето работает нормально а гдето нет ? | |
|
|
|
|