🔧 PHP cURL 测试代理出口示例
<?php
// 代理服务器信息
$server_ip = "1.1.1.1"; // 你的主服务器 IP
$port = 10023; // 对应的代理端口,例如 10023
// 测试目标:返回请求来源 IP
$url = "https://api.ipify.org";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 设置 Socks5 代理
curl_setopt($ch, CURLOPT_PROXY, $server_ip);
curl_setopt($ch, CURLOPT_PROXYPORT, $port);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
// 超时设置
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
if ($response === false) {
echo "[FAIL] $server_ip:$port → " . curl_error($ch) . PHP_EOL;
} else {
echo "[OK] $server_ip:$port → 出口IP: $response" . PHP_EOL;
}
curl_close($ch);
📌 使用方法
- 保存为
test_proxy.php - 命令行运行:
php test_proxy.php - 输出示例:
[OK] 1.1.1.1:10023 → 出口IP: 9.9.9.23
🚀 扩展:批量测试多个端口
如果你想在 PHP 里批量测试,可以用循环:
<?php
$server_ip = "1.1.1.1";
$start_port = 10001;
$end_port = 10010; // 先测试前10个
$url = "https://api.ipify.org";
for ($port = $start_port; $port <= $end_port; $port++) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, $server_ip);
curl_setopt($ch, CURLOPT_PROXYPORT, $port);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
if ($response === false) {
echo "[FAIL] $server_ip:$port → " . curl_error($ch) . PHP_EOL;
} else {
echo "[OK] $server_ip:$port → 出口IP: $response" . PHP_EOL;
}
curl_close($ch);
}
IDC头条