Помогите проверить, работает ли прокси с использованием php - PullRequest
1 голос
/ 12 февраля 2011

У меня есть список прокси, нужно использовать их в написанном мной php-скрипте.

Как я могу проверить, что прокси будет работать, прежде чем я его использую? это возможно? в настоящий момент, если прокси не работает, скрипт просто умирает через 30 секунд. Есть ли более быстрый способ определить, будет ли он работать или нет?

возможно создать сокетное соединение? отправьте ему что-нибудь, что покажет, открыт ли прокси?

спасибо

Ответы [ 2 ]

8 голосов
/ 12 февраля 2011

вы можете использовать fsockopen для этого, где вы можете указать время ожидания.

Простая проверка списка прокси.Вы можете проверить список ip: port, если этот порт открыт на этом IP-адресе.

<?php

$fisier = file_get_contents('proxy_list.txt'); // Read the file with the proxy list
$linii = explode("\n", $fisier); // Get each proxy
$fisier = fopen("bune.txt", "a"); // Here we will write the good ones

for($i = 0; $i < count($linii) - 1; $i++) test($linii[$i]); // Test each proxy

function test($proxy)
{
  global $fisier;
  $splited = explode(':',$proxy); // Separate IP and port
  if($con = @fsockopen($splited[0], $splited[1], $eroare, $eroare_str, 3)) 
  {
    fwrite($fisier, $proxy . "\n"); // Check if we can connect to that IP and port
    print $proxy . '<br>'; // Show the proxy
    fclose($con); // Close the socket handle
  }
}

fclose($fisier); // Close the file

?>

, вы также можете использовать set_time_limit , чтобы вы могли запустить скрипт дольше.

Код взят из: http://www.php.net/manual/en/function.fsockopen.php#95605

1 голос
/ 20 июня 2016

Вы можете использовать эту функцию

 function check($proxy=null)
    {
        $proxy=  explode(':', $proxy);
        $host = $proxy[0]; 
        $port = $proxy[1]; 
        $waitTimeoutInSeconds = 10; 
        if($fp = @fsockopen($host,$port,$errCode,$errStr,$waitTimeoutInSeconds)){   
           return 'yes';
        } else {
           return 'false';
        } 
        fclose($fp);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...