phpproxies

How to verify specified proxy is used in php script?


I am trying to force a php script (currently on XAMPP, soon on a dedicated server) to use a certain proxy for outgoing traffic.

On this site i found the following solution for it :

stream_context_set_default(['http'=>['proxy'=>'ip:port']]);

how do i verify that my script is actually using that proxy? thanks in advance


Solution

  • You can use fsockopen for this, where you can specify a timeout.

    A simple proxy list checker. You can check a list ip:port if that port is opened on that 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
    
    ?>
    

    you may also want to use set_time_limit so that you can run your script for longer.

    Code taken from: http://www.php.net/manual/en/function.fsockopen.php#95605

    Just for 1 proxy :

    function test()
    {
      $fisier = fopen("bune.txt", "a"); // Here we will write the good ones
      if($con = @fsockopen($IP, $port, $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
      }
    }