Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с проверкой прокси, Через cURL 
:(
    Опции темы
Alex5
  Дата 15.11.2008, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2008

Репутация: нет
Всего: нет



Делаю заказ. И мягко говоря я с ним справился на половину.
Но сделать надо. Сидим не знаем как сделать.
Нужно проверить прокси на работоспособность.
Вот что получилось пока что: (fsockopen() почему то не работает на сервере)
Решили сделать через cURL
   
Код


 <?php

 function check_ip($url){
    $time_out = 12;
    $handle = curl_init($url);
    // return as a string.
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
    // Prevents your page from hanging if the remote site is down.
    curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, $time_out);
    curl_setopt($handle, CURLOPT_FRESH_CONNECT, 1); // don't use a cached version of the 

url
    curl_setopt($handle, CURLOPT_HTTPPROXYTUNNEL,TRUE);
    //curl_setopt($handle, CURLOPT_PROXY, $url);
    curl_setopt($handle, CURLOPT_USERAGENT,"Mozilla/4.0");
    curl_setopt($handle, CURLOPT_MAXREDIRS,15);
    //curl_setopt($handle, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($handle, CURLOPT_HEADER,0);
    $info = array();
    $info[0] = curl_getinfo($handle,CURLINFO_CONNECT_TIME);
    $info[1] = curl_getinfo($handle, CURLINFO_TOTAL_TIME);
    $info[2] = curl_getinfo($handle, CURLINFO_SPEED_DOWNLOAD);

    $buffer = curl_exec($handle);
    if (curl_errno($handle)) {
         echo curl_error($handle)."<br>";
    }
    else {
        curl_close($handle);
        if (empty($buffer)) {
            echo 'Unable to connect to '.$url.' <br>';
        } else {
            $buffer = preg_replace('/(?s)<meta http-equiv="Expires"[^>]*>/i', '', 

$buffer);
            if ($buffer === true) {
                echo 'Page has a redirect, please enter the URL of the final 

redirection <br>';
            } else {
               print($buffer);
               echo $info[0]." s(connect time)<br>".
                   $info[1]." s (total time) <br>".
                  $info[2]." (speed)<br>";

               echo "Proxy is good <br>";
            }

        }
    }

 }



 if($_POST['submit_ip']){
 check_ip($_POST['ip']);
 }

  echo "<div class=box><br>
    <div align=left>
    <form name=test_ip method=post>
    IP: <input name=\"ip\" type=\"text\" value=\"\" size=15 maxlength=30>&nbsp;
    <input type=\"submit\" name=submit_ip value=\"Test\">
    </form></div>
 </div>";

?>

Очень благодарен буду за помощь.
Удачи
PM MAIL   Вверх
teroni
Дата 15.11.2008, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 1
Всего: 22



А в чем проблема? Что именно не работает?

З.Ы. Если на хостинге не работает fsockopen() - это либо кривые руки, либо плохой хостинг. ;)
PM MAIL   Вверх
Alex5
Дата 16.11.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2008

Репутация: нет
Всего: нет



fsockopen() реально не работает на моём хосте.
Но curl работает ещё как.
Нее, работает.
Просто не могу понять правильно ли этот метод работает.
Он подключается к ip и берёт данные.
Если ошибка значит ip неработающий.
Ну лично я так понял. Вот хочу знать ваше мнение.
PM MAIL   Вверх
ZlojEzh
Дата 16.11.2008, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: нет
Всего: 15



Код

$handle = curl_init($url);

походу, вместо адреса прокси надо доставать какую-то другую, заведомо существующую, страницу

ну и указывать параметры CURLOPT_PROXY, CURLOPT_PROXYPORT
в зависимости от того с каким прокси Вы работаете могут еще понадобиться CURLOPT_PROXYAUTH, CURLOPT_PROXYTYPE, CURLOPT_PROXYUSERPWD
PM MAIL ICQ   Вверх
Alex5
Дата 16.11.2008, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2008

Репутация: нет
Всего: нет



Вот вариант заказчика. Но этот вариант совсем не работает у меня.
Вечно выходит: couldn't connect to host.

Код

<?php

 function check_ip($pr){
    $time_out = 12;
    $handle = curl_init('http://nes.planet.ee/check.php');
    curl_setopt($handle, CURLOPT_HTTPPROXYTUNNEL,TRUE);
    curl_setopt($handle, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
    curl_setopt($handle, CURLOPT_PROXY,$pr);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, $time_out);
    curl_setopt($handle, CURLOPT_FRESH_CONNECT, 1);
    curl_setopt($handle, CURLOPT_USERAGENT,"Mozilla/4.0");
    curl_setopt($handle, CURLOPT_MAXREDIRS,15);
    curl_setopt($handle, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($handle, CURLOPT_HEADER,0);

    $buffer = curl_exec($handle);
    curl_close($handle);

 if ($buffer==""){print "Proxy is dead/ too slow<br>"; print ($buffer); }
 else
 {
 $strs = explode("\n",$buffer);
 print ($strs[0]);

 }


 }


 if($_POST['submit_ip']){
 check_ip($_POST['ip']);
 }

  echo "<div class=box><br>
    <div align=left>
    <form name=test_ip method=post>
    IP: <input name=\"ip\" type=\"text\" value=\"\" size=15 maxlength=30>&nbsp;
    <input type=\"submit\" name=submit_ip value=\"Test\">
    </form></div>
 </div>";

?>



Хм... значит заказчик был прав... но этот метод его не работает.

Это сообщение отредактировал(а) Alex5 - 16.11.2008, 19:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.