Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   как выполнить file_get_contents через прокси (https://forum.antichat.xyz/showthread.php?t=49520)

Sharky 21.09.2007 19:32

как выполнить file_get_contents через прокси
 
как выполнить file_get_contents через http прокси

groundhog 21.09.2007 19:44

Никак. Посмотри тут:

http://forum.antichat.ru/threadnav40896-48-10.html

Я публиковал функцию курла для HTTP-запросов. Она может через проксики работать.

Sharky 21.09.2007 19:53

а через сокеты можно?

guest3297 21.09.2007 21:22

токо хотел написать через сокет...

Sharky 21.09.2007 21:56

Цитата:

Сообщение от [ cash ]
токо хотел написать через сокет...

ну а пример можно =) ?

Sharky 21.09.2007 22:46

Цитата:

Сообщение от mr.The
аффтор. поиск юзать несудьба?

юзал...раз такой умный дай ссылку где показано

groundhog 22.09.2007 00:47

Sharky, насколько я знаю, соединение с хостом через сокеты делается очень просто... В функции fsockopen вместо хоста коннекта ты указываешь урлу проксика, в запросе GET URI делаешь абсолютным (что-то типа GET http://somehost.ru/somefile.bin HTTP/1.0). И не забудь в хидерах запроса передать заголовок Host с корректным значением домена, с которого запрашивается файл.

Ну можно ещё так:
Код:

$url = "http://ya.ru";  // Урла запрашиваемого ресурса
$proxy = sprintf("tcp://%s/", "123.123.123.123");  // Наш прокси
$opts = array('http' => array('proxy' => $proxy, 'request_fulluri' => true));
$connection = stream_context_create($opts);
$content = file_get_contents($url, null, $connection);

print($content);

но не рекомендуется...

Darkweider 22.09.2007 01:52

А еще вот что придумал, конешно дибилизм, но все же идея такова....
На одном серваке(1) с которого ведется получение пишеться обращение к скрипту лежащему на другом серваке(2) через file_get_contents("http://server2.ru/script2.php") в котором тоже используется file_get_contents('"содержимое которое хотим получить")... Таким же макаром можно цепочку делать, если серверов много куда залить можно файлы... Сорри за оффтоп...
А на счет прокси думаю надо использовать пример,описываемый groundhog' ом , юзаем сокеты.

Sharky 22.09.2007 13:51

Цитата:

Сообщение от groundhog
Sharky, насколько я знаю, соединение с хостом через сокеты делается очень просто... В функции fsockopen вместо хоста коннекта ты указываешь урлу проксика, в запросе GET URI делаешь абсолютным (что-то типа GET http://somehost.ru/somefile.bin HTTP/1.0). И не забудь в хидерах запроса передать заголовок Host с корректным значением домена, с которого запрашивается файл.

Ну можно ещё так:
Код:

$url = "http://ya.ru";  // Урла запрашиваемого ресурса
$proxy = sprintf("tcp://%s/", "123.123.123.123");  // Наш прокси
$opts = array('http' => array('proxy' => $proxy, 'request_fulluri' => true));
$connection = stream_context_create($opts);
$content = file_get_contents($url, null, $connection);

print($content);

но не рекомендуется...

Warning: file_get_contents() expects at most 2 parameters, 3 given in C:\AppServ\www\stream1.php on line 6

groundhog 22.09.2007 14:07

Чтобы работать с контекстом, нужен Php >= 5.0.0. Я поэтому и написал, что не рекомендуется. С ней один гемор.


Время: 03:31