Forum Webscript.Ru

Программирование => PHP => Тема начата: Alexandr от 08 Июля 2002, 12:56:53

Название: Как к прокси подключиться?
Отправлено: Alexandr от 08 Июля 2002, 12:56:53
Как к прокси подключиться с помощью PHP?
Название: Как к прокси подключиться?
Отправлено: GotZfild от 08 Июля 2002, 15:22:55
fsockopen().
Название: Как к прокси подключиться?
Отправлено: Alexandr от 08 Июля 2002, 15:25:05
Знаю, я что ч/з
Цитировать
fsockopen()
. Поподробнее плизз.
Надо подключиться и скачать файл по fopen.
Название: Как к прокси подключиться?
Отправлено: GotZfild от 08 Июля 2002, 15:38:45
Цитировать
скачать файл по fopen

Качай через сокет
Цитировать
Поподробнее плизз

Соединяйся с proxy, а через него уже запрашивай документ.

$fp = fsockopen(\'100.100.100.1\', 8000);
$query = \'GET http://we.ru/some.zip HTTP/1.0\\r\\n\';  // и т.д.
Название: Как к прокси подключиться?
Отправлено: Alexandr от 09 Июля 2002, 07:22:45
Понятно! Ща поюзаю!
Название: Как к прокси подключиться?
Отправлено: Alexandr от 10 Июля 2002, 14:13:46
Цитировать
Соединяйся с proxy, а через него уже запрашивай документ.

$fp = fsockopen(\'100.100.100.1\', 8000);
$query = \'GET http://we.ru/some.zip HTTP/1.0\\r\\n\';  // и т.д.

Чёт не выходит, может я где налажал?
Пишу:
$fp=fsockopen(\'195.208.211.201\', 3128);
$query=\'GET http://webscript.ru/ HTTP/1.0
\';
fputs($fp, $query);
echo fgets($fp, 1000);
fclose($fp);
?>

А он мне (локально):
Warning: Supplied argument is not a valid File-Handle resource in d:\\web\\localhost\\www\\_proba.php on line 5
Warning: Supplied argument is not a valid File-Handle resource in d:\\web\\localhost\\www\\_proba.php on line 6
Warning: Supplied argument is not a valid File-Handle resource in d:\\web\\localhost\\www\\_proba.php on line 7

Строки соответственно:
fputs($fp, $query);
echo fgets($fp, 1000);
fclose($fp);

А на серваке вообще ничего не выводит.
Название: Как к прокси подключиться?
Отправлено: GotZfild от 10 Июля 2002, 16:38:39
Попробуй заменить
Цитировать
$fp=fsockopen(\'195.208.211.201\', 3128);

на $fp = fsockopen(\'195.208.211.201\', 3128) or die("Не могу соединиться");
По ходу он у тебя не соединяется. Проверь данные прокси. Кстати, запрос у тебя неверный.
Название: Как к прокси подключиться?
Отправлено: Alexandr от 10 Июля 2002, 16:51:26
Цитировать
Кстати, запрос у тебя неверный.

В смысле?
А как правильно?
Название: Как к прокси подключиться?
Отправлено: GotZfild от 10 Июля 2002, 19:36:40
Хотя бы так:
$query = "GET $url HTTP/1.0\\r\\n".
            "Host: la.ru\\r\\n".
            "User-agent: melcosoft_browser aka IE\\r\\n".
            "\\r\\n";

Но только ошибка у тебя выдается не из-за запроса.
Название: Как к прокси подключиться?
Отправлено: Alexandr от 11 Июля 2002, 09:26:40
Написал:
Цитировать
$fp = fsockopen(\'195.208.211.201\', 3128) or die("Не могу соединиться");

И действительно не робит. Срабатывает die.
IP не битый (в брозере робит).
Help!!!! Please, heeeeelp!!!
Название: Как к прокси подключиться?
Отправлено: Maniac от 11 Июля 2002, 10:56:33
А с чего бы он у тебя робил? Ты, наверное, самый тормозной сервак нашел. Если хочешь коннектиться именно через него - то поставь в fsockopen timeout побольше.
Либо сходи на http://www.multiproxy.org - там есть список анонимных прокси.

Код $fp=fsockopen(\'machinetransport.com\',80) or die(\'Can"t establish connection\'); работет
Название: Как к прокси подключиться?
Отправлено: Alexandr от 11 Июля 2002, 12:50:36
Ну да. С сайтами заработало.
Например так:
$fp=fsockopen(\'www.samair.ru\', 80) or die(\'Can"t establish connection\');
$query = "GET http://www.samair.ru/cgi/proxycheck.cgi HTTP/1.0\\r\\n\\r\\n";
fputs($fp, $query);
while (!feof($fp)) echo fgets($fp, 1000);
fclose($fp);
Всё ok. Без проблем.
А вот так:
$fp=fsockopen(\'195.239.30.141\', 3128) or die(\'Can"t establish connection\');
$query = "GET http://www.samair.ru/cgi/proxycheck.cgi HTTP/1.0\\r\\n\\r\\n";
fputs($fp, $query);
while (!feof($fp)) echo fgets($fp, 1000);
fclose($fp);
Пишет Can"t establish connection.
Прокси брал с
http://www.samair.ru/xwww/701-800.htm (http://www.samair.ru/xwww/701-800.htm)
Попробовал штуки 3.
Может кто подскажет в чём дело.
Если с самой проксёй, то дайте хоть 1 адрес нормального проки, а если в паге, то, плиз, подправте код.
Название: Как к прокси подключиться?
Отправлено: obytatel от 14 Июля 2002, 04:36:27
Alexandr, ты лучший! Спасибо за вопросы...
Название: Как к прокси подключиться?
Отправлено: Maniac от 14 Июля 2002, 14:53:47
Цитировать

Если с самой проксёй, то дайте хоть 1 адрес нормального проки


А ты думаешь, я адрес в примере с потолка брал? И урлик полезный, куда сходить, давал просто так?
Название: Как к прокси подключиться?
Отправлено: Alexandr от 15 Июля 2002, 08:07:13
Maniac точно!!!
пасиба. вродь чёт заворочалось!
Пасиба всем за терпение!
Название: Как к прокси подключиться?
Отправлено: Alexandr от 15 Июля 2002, 14:57:45
Maniac
Цитировать
поставь в fsockopen timeout побольше

Как?
Название: Как к прокси подключиться?
Отправлено: Maniac от 15 Июля 2002, 16:33:37
Цитировать
Как?


int fsockopen ( string hostname, int port [, int errno [, string errstr [, float timeout]]])

Вот так
Название: Как к прокси подключиться?
Отправлено: Alexandr от 15 Июля 2002, 16:37:27
Цитировать
int fsockopen ( string hostname, int port [, int errno [, string errstr [, float timeout]]])

Круто, а у мя в Котеров\'е написано только
int fsockopen ( string hostname, int port [, int errno [, string errstr]])
Название: Как к прокси подключиться?
Отправлено: Maniac от 15 Июля 2002, 16:44:19

The timeout parameter was introduced in PHP 3.0.9 and UDP support was added in PHP 4.


У Котерова, видать, устаревшая информация :)
И вообще, рекомендую скачать с php.net мануал...
Название: Как к прокси подключиться?
Отправлено: от 16 Июля 2002, 02:58:44
GotZfild
Цитировать
Хотя бы так:

PHP:
$query = "GET $url HTTP/1.0\\r\\n".
            "Host: la.ru\\r\\n".
            "User-agent: melcosoft_browser aka IE\\r\\n".
            "\\r\\n";

Подскажи пожалуйста где можно более подробно про запросі почитать(на русском)?
Название: Как к прокси подключиться?
Отправлено: Million от 16 Июля 2002, 03:02:14
GotZfild

Цитировать
Хотя бы так:

PHP:
$query = "GET $url HTTP/1.0\\r\\n".
            "Host: la.ru\\r\\n".
            "User-agent: melcosoft_browser aka IE\\r\\n".
            "\\r\\n";

Подскажи пожалуйста где можно более подробно про заросы почитать(на русском)?
Название: Как к прокси подключиться?
Отправлено: Макс от 16 Июля 2002, 03:29:55
Million и все остальные.
Поймите вы наконецто, что ели вы избрали тернистый путь программиста, то тем самым вы утвердили для себя 2 родных языка: английский и тот на котором говорите. Не выучив английский профессиональный программист из вас не получится.
Уделите пожалуйста время на изучение этого языка.

Если конкретно по твоему вопросу Million, то тебе нужна дока по HTTP- протоколу. Я много всяких док по нему видел, но хорошего ничего. Вроде на citforum-e что-то было. Вот еще можешь почитать http://www.ya.ru/yandsearch?text=http+2068
Название: Как к прокси подключиться?
Отправлено: Alexandr от 16 Июля 2002, 10:26:09
Цитировать
int fsockopen ( string hostname, int port [, int errno [, string errstr [, float timeout]]])

Блин. Чёт ну хочет timeout работать.
Пишу (не рабочий прокси):
$fp=fsockopen(\'dnai-216-15-34-70.cust.dnai.com\', 80, $t, $t2, 0.00000000001) or die("No");
die("Yes");
И жду около 20 сек.
А рабочий прокси нормал.
Как быть?
Название: Как к прокси подключиться?
Отправлено: Maniac от 16 Июля 2002, 10:31:12
Сходи на PHP.net - там в разделе fsockopen есть пользовательские комментарии - авось помогут.
В качестве одного из способов лечения предлагается set_sock_timeout() после fsockopen
Название: Как к прокси подключиться?
Отправлено: Alexandr от 16 Июля 2002, 12:01:14
Цитировать
08-Jun-2002 03:46
 
PHP Version 4.2.0/WIN32

$iptoopen="127.0.0.1";
$porttoopen = 2593;
$ltime=time();
$connection = fsockopen ($iptoopen, $porttoopen, &$errno,
&$errstr, 1);
if (!$connection){
   echo "Can not Connect: ($errno)-$errstr";
   }else{
      fputs($connection, "\\n");
      socket_set_timeout($connection, 1, 1);
      echo "Ok I\'am Connected to the port!";
   }
$htime=time();
$ttime=($htime-$ltime);
echo "Time =$ttime Seconds!";
echo "Done! Closing port!";
fclose ($connection);
?>

If the port does not respond, it takes about 21 seconds to come back!
Shouldnt it be 1 second? That is what is stated in the
"fsockopen"?

Похоже с той же проблемой столкнулись.
Название: Как к прокси подключиться?
Отправлено: pit от 30 Июля 2002, 03:18:04
Может кто сможет помочь? Хочу разобраться с socks4\\5.

пишу вот так:

$s_host = "12.39.17.42"; // адрес
$s_port = "1080";            // и порт сокс (socks) сервера
$url = "http://mail.ru/";  // запрашиваемый документ

$fp = fsockopen("$s_host", $s_port, &$errno, &$errstr);
if(!$fp) {
        echo "$errstr ($errno)
\\n";
} else {
        fputs($fp, "GET $url HTTP/1.0\\r\\n".
                   "Host: la.ru\\r\\n".
                   "User-agent: IE 6.0\\r\\n".
                   "\\r\\n");
        while(!feof($fp)) {
                echo fgets($fp,1024);
        }
        fclose($fp);
}
?>


кусок access_log индейца при выполнении скрипта:
localhost.localdomain - - [30/Jul/2002:02:07:23 +0400] "GET /sock.php HTTP/1.1"    200    5

но ничего не происходит. все адреса и порты насстоящие и работающие. если указать порт обычного прокси то всё прекрасно работает - скрипт выдаёт начальную страницу mail.ru.

в чём дело? почему socks-сервер молчит? может я даю ему неправильный запрос?
Название: Как к прокси подключиться?
Отправлено: Макс от 30 Июля 2002, 04:04:19
На phpclub-е Slach как-то выкладывал функцию для работы через Socks. Поищи