Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: file_get_content через прокси...
 
 автор: Tread   (02.02.2007 в 12:00)   письмо автору
 
 

Всем привет!
Имеется проблемка: есть забаненый определенным сервером ip (этот ip принадлежит серверу, где лежит скрипт), т.е. при обращении на прямую file_get_content выдает мол невозможно загрузить контент...
Подскажите, пожалуйста, каким образом можно обойти такую систему блокировки?
Может использовать анонимные прокси? И если все таки можно их использовать, то можно ли пример такого действа?
З.Ы. читал я инфу о curl и о fsockopen, пытался писать скрипты, правльно строил запросы от сервака, но толкового ничего из этого не выходило...

   
 
 автор: cheops   (02.02.2007 в 12:40)   письмо автору
 
   для: Tread   (02.02.2007 в 12:00)
 

Да, можно использовать анонимный прокси-сервер (только предварительно нужно убедиться, что он работоспособный - у них, как правило, короткая жизнь). Весь фокус в том, что вы открываете соединение с прокси-сервером и передаёте HTTP заголовок Host в котором указываете адрес конечного хоста.

PS Прокси-сервера правда часто тоже банят, как только выясняют, что это прокси-сервер. И вообще лучше до бана никогда не доводить, а по хорошему договориться с владельцем контента.

   
 
 автор: Tread   (02.02.2007 в 12:55)   письмо автору
 
   для: cheops   (02.02.2007 в 12:40)
 

Дело в том что я пытался сделать коннект вот таким скриптом
$proxy = "60.217.227.136";
$port = 8080;
$url = "http://xyz.ru";

$fp = fsockopen($proxy, $port, $errno, $errstr, 30);
if (!$fp) {
echo "ERROR: $errno - $errstr<br />\n";
} else {

$out = "GET / HTTP/1.1\r\n";
$out .= "Host: ".$url."\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);

}

Но результат, даже при точно работающих прокси - пустая траница...

Может в коде ошибка?

   
 
 автор: Trianon   (02.02.2007 в 13:13)   письмо автору
 
   для: Tread   (02.02.2007 в 12:55)
 

1 В HOST указывается только адрес
xyz.ru
2. В GET указывается весь url
http://xyz.ru/

Выбирать версию 1.1 нужно лишь в том случае, если Вы знаете протокол этой версии. А это не так. Выбирайте 1.0

   
 
 автор: Tread   (02.02.2007 в 13:50)   письмо автору
 
   для: Trianon   (02.02.2007 в 13:13)
 

Спасибо, за совет, но итог тот же...

   
 
 автор: disable   (03.02.2007 в 03:51)   письмо автору
 
   для: Tread   (02.02.2007 в 13:50)
 

вот так пробовали?

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://xyz.ru'); 
curl_setopt($ch, CURLOPT_PROXY, '194.67.2.155:3128'); 
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/8.01 (Windows NT 5.1; U; ru)'); 
curl_setopt($ch, CURLOPT_REFERER, 'http://xyz.ru'); 
$result = curl_exec($ch); 
curl_close($ch);

   
 
 автор: Tread   (04.02.2007 в 13:38)   письмо автору
 
   для: disable   (03.02.2007 в 03:51)
 

Спасибо за совет!
Но...
Для этого надо установить curl вроде бы... как его установить на удаленный сервер?

   
 
 автор: cheops   (05.02.2007 в 00:13)   письмо автору
 
   для: Tread   (04.02.2007 в 13:38)
 

Это может сделать только администратор сервера.

   
 
 автор: Tread   (08.02.2007 в 22:59)   письмо автору
 
   для: cheops   (05.02.2007 в 00:13)
 

Ясно, но я не администратор...
Больше вариантов нет? :)

   
 
 автор: Trianon   (09.02.2007 в 01:14)   письмо автору
 
   для: Tread   (08.02.2007 в 22:59)
 

Удивляет, что у Вас вариант с fsockopen не пошел....

   
 
 автор: ZuArt   (09.02.2007 в 09:32)   письмо автору
 
   для: Tread   (08.02.2007 в 22:59)
 

а как Вы проверили, что CURL не пашет??? или это просто догадка? я пока не встречал такого хостера, который не держит работу с сокетами через CURL-функции...

   
 
 автор: Tread   (26.02.2007 в 13:52)   письмо автору
 
   для: ZuArt   (09.02.2007 в 09:32)
 

Честно говря это догадка была... я считал что до проверки надо сам курл поставить...
Попробуем :)
Большое спасибо!

   
 
 автор: SnooPI   (26.02.2007 в 16:54)   письмо автору
 
   для: Tread   (26.02.2007 в 13:52)
 

А через fsockopen() можект кто-нибудь правильно написать?

   
 
 автор: SnooPI   (28.02.2007 в 00:09)   письмо автору
 
   для: SnooPI   (26.02.2007 в 16:54)
 

А как через fsockopen() и чтобы были сокс прокси? :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования