我有一个卷曲的随机IP脚本,但我不知道如何使用相同的随机脚本端口
function curl_get($kix)
{
$ips = array(
'85.10.230.132',
'88.198.242.9',
'88.198.242.10',
'88.198.242.11',
'88.198.242.12',
'88.198.242.13',
'88.198.242.14',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $kix);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_INTERFACE, $ips[rand(0, count($ips)-1)]);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
你可以在这里看到我提到了ip,但我不知道如何为那些ip提供端口。
提前致谢!
答案 0 :(得分:0)
如果每个IP有不同的端口,则可以使用关联数组将端口与IP关联。
因此,对于以下函数,我假设您使用PHP> = 7.0以及以下格式作为数组格式。
array('IP'=>'Port');
我们还 CURLOPT_PORT 指定要连接的备用IP。 引用documentation:
CURLOPT_PORT:要连接的备用端口号。
回到你的问题:
curl_setopt($ch, CURLOPT_PORT, $port);
分配我们需要使用的端口。array_rand($ips)
从新创建的关联数组(IP列表)中获取随机密钥$port = $ips[$randomIP];
所以你的功能现在看起来像:
function curl_get($kix)
{
$ips = array(
'85.10.230.132' => '80',
'88.198.242.9' => '8080',
'88.198.242.10' => '5754',
'88.198.242.11' => '80',
'88.198.242.12' => '8888',
'88.198.242.13' => '8989',
'88.198.242.14' => '8080',
);
// We get a random key (IP)
$randomIP = array_rand($ips);
// We get the port according to the random key (IP)
$port = $ips[$randomIP];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $kix);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_INTERFACE, $randomIP);
// We set the alternative port with the following
curl_setopt($ch, CURLOPT_PORT, $port);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}