Как я узнаю, что мой прокси-сервер недоступен? - PullRequest
2 голосов
/ 06 августа 2011

В PHP я использую прокси с curl со следующим:

CURLOPT_HTTPPROXYTUNNEL, 1,
CURLOPT_PROXY, ''.$current_proxy.'',

и у меня есть БД с резервными IP-адресами прокси-сервера, но я хочу знать, как я могу определить, отказал ли прокси-сервер, чтобы он мог переключать переменную $current_proxy.

Что вы предлагаете для обнаружения, если сервер не работает? Спасибо.

Ответы [ 3 ]

4 голосов
/ 10 августа 2013

Вы можете просто попытаться подключиться к прокси с помощью fsockopen, например:

$proxy = '98.255.255.255:8080';
$timeout = 5;
$splited = explode(':',$proxy); // Separate IP and port
if($con = @fsockopen($splited[0], $splited[1], $errorNumber, $errorMessage, $timeout)) 
{
    echo 'Connection successful, PROXY works!';
} else {
    echo $errorNumber . ' ' . $errorMessage;
}
1 голос
/ 07 августа 2011

list.txt содержит, например:

1.2.3.4: 2487 123.123.123.123:3248

и т. Д.PHP-код, как это ...

$url = "http://www.google.com";
$proxies = file("list.txt");

foreach($proxies as $proxy)
{
    $ch = curl_init($url);
    curl_setopt($ch,CURLOPT_PROXY,$proxy);
    curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,$proxy);
    $page = curl_exec($ch);
    curl_close($ch);
    $check = stripos($page,'</html>'); // not pretty :)

        if($check > 0)
        {
            echo $proxy . " Works!";
        }else{
            echo $proxy . " Is Dead!";
        }
}
0 голосов
/ 06 августа 2011

Curl не различает, работает ли прокси или страница не существует (или сервер, на котором эта страница не работает)Вот почему вам нужно придумать обходной путь самостоятельно.По крайней мере Даниэль из Haxx AB сказал это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...