网络上很多用户提问PHP如何使用代理IP,这里就简单发表一下自己的真知灼见,希望对大家有帮助。
在使用之前,我们需要对IP进行验证,因为网络中的代理IP数量很大,但是能用的往往却是很少,所以在使用之前对代理IP进行剔除,以便提高我们的工作效率。通过PHP中curl函数设置代理,再访问百度或者其他能访问到的网站,通过返回的状态码是否等于200来判断代理IP是不是可以正常使用的。调用GetHttpStatusCode(代理IP地址:端口)方法就能返回该代理IP在访问百度首页时所返回的状态码,在需要的地方对状态码进行判断就能加以利用了。在数据表中加入了抓取到代理IP的时间和代理IP被验证的时间,已经存活的时间,这样代理IP的稳定性就一目了然了。这是验证后的结果,整整100个IP,最后就剩下10个左右,看来在使用之前对代理IP进行验证还是很有必要的。
接下来说一下如何使用代理IP访问网站。这里使用的是CURL库访问代理。
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL, "http://www.gzkangyun.com/");
curl_setopt($curl,CURLOPT_HEADER,1);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);//使用了SOCKS5代理
curl_setopt($curl, CURLOPT_PROXY, "ip:1080");
$data=array('user'=> "geek", 'password'=> 'fuck');
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
//curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 1);如果是HTTP代理
//curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt');cookie你懂的
$request=curl_exec($curl);
//var_dump($request);
curl_close($curl);
05
2019-04
08
2019-05
31
2019-05
18
2019-05
29
2019-04
11
2019-04