溫馨提示×

在PHP中如何檢測SOCKS5代理狀態

PHP
小樊
121
2024-08-29 12:00:18
欄目: 編程語言

要在 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 擴展。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女