如何验证 php 脚本中使用了指定的代理?

How to verify specified proxy is used in php script?

我正在尝试强制 php 脚本(目前在 XAMPP 上,即将在专用服务器上)使用特定代理来处理传出流量。

在这个网站上,我找到了以下解决方案:

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

如何验证我的脚本是否确实在使用该代理? 提前致谢

您可以为此使用 fsockopen,您可以在其中指定超时。

一个简单的代理列表检查器。如果该端口在该 IP 上打开,您可以检查列表 ip:port。

<?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 个代理:

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
  }
}