Heim >Backend-Entwicklung >PHP-Tutorial >PHP如何在多IP服务器中切换IP采集数据?

PHP如何在多IP服务器中切换IP采集数据?

WBOY
WBOYOriginal
2016-06-23 14:13:30989Durchsuche

在PHP 中使用CURL 采集某URL数据,由于服务器拥有有多个IP,所以想在CURL中切换不同的IP来采集以防止被封,但是发现curl_setopt($ci, CURLOPT_PROXY, '1.1.1.1');  这种不可用

请问有什么解决办法,或者不使用curl 用snoopy等也可以,请大家指教


回复讨论(解决方案)

用fsockopen

function get_from_website($ip, $domain)
{
$content = '';
$fp = fsockopen($ip, 80);
fputs($fp, 'GET / HTTP/1.0\r\n');
fputs($fp, 'Host; '.$domain.'\r\n\r\n');
while(!foef($fp)) {
    $content += fgets($fp, 1024);
}
fclose($fp);
return $content;
}

get_from_website('1.1.1.1', 'example.com');
get_from_website('1.1.1.2', 'example.com');
get_from_website('1.1.1.3', 'example.com');
get_from_website('1.1.1.4', 'example.com');

1,把$ip做成变量,随机取用你的IP数组里的ip
2,还可以控制采集次数,换一次IP

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn