在PHP中如何检测SOCKS5代理状态

avatar
作者
筋斗云
阅读量: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 扩展。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!