阅读量:0
要在 PHP 中检测 SOCKS5 代理的状态,可以使用 cURL 库
<?php function check_socks5_proxy($proxy_host, $proxy_port) { $url = "http://www.example.com"; // 用于测试代理的目标 URL $ch = curl_init($url); // 设置 cURL 选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true); curl_setopt($ch, CURLOPT_PROXY, $proxy_host . ':' . $proxy_port); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 发送请求并获取响应 $response = curl_exec($ch); // 检查是否有错误 if (curl_errno($ch)) { echo "Error: " . curl_error($ch); return false; } // 关闭 cURL 会话 curl_close($ch); // 检查响应是否包含目标 URL 的内容(表示代理有效) if (strpos($response, "Example Domain") !== false) { return true; } else { return false; } } // 使用示例 $proxy_host = "127.0.0.1"; $proxy_port = 1080; if (check_socks5_proxy($proxy_host, $proxy_port)) { echo "SOCKS5 proxy is working."; } else { echo "SOCKS5 proxy is not working."; } ?>
这个函数首先初始化一个 cURL 会话,然后设置代理服务器的相关选项。接着,它发送一个 HTTP 请求并等待响应。如果响应中包含目标 URL 的内容,那么说明代理有效。如果有任何错误或响应不符合预期,则认为代理无效。
请注意,这个示例需要安装并启用 PHP 的 cURL 扩展。