问题描述
- 我用了curl代理,为什么抓取http://www.ip138.com 显示的还是实际ip
- 我在 http://ip.qiaodm.com/上面找的高匿代理
这是我的代码我curl用了代理ip做抓取,按理说应该显示的是我代理的ip但是还是显示的我的本机IP。 有谁知道为什么function get_html($url$data=array()$html_char='UTF-8'$is_ssh='http'){
$ch = curl_init(); curl_setopt($ch CURLOPT_URL $url); curl_setopt($ch CURLOPT_RETURNTRANSFER1); curl_setopt($ch CURLOPT_PROXY'111.12.117.67'); curl_setopt($ch CURLOPT_PROXYPORT'83'); curl_setopt ($ch CURLOPT_HTTPHEADER array('CLIENT-IP:113.207.63.26' 'X-FORWARDED-FOR:113.207.63.26')); curl_setopt ($ch CURLOPT_TIMEOUT 6000); curl_setopt ($ch CURLOPT_USERAGENT 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0'); if($is_ssh=='SSL'){ curl_setopt($ch CURLOPT_SSL_VERIFYPEER false); curl_setopt($ch CURLOPT_SSL_VERIFYHOST false); } curl_setopt($ch CURLOPT_FOLLOWLOCATION1); if(!empty($data)){ curl_setopt($ch CURLOPT_POST true); curl_setopt($ch CURLOPT_POSTFIELDS $data); } $output = curl_exec($ch); if($html_char!='UTF-8'){ $output=mb_convert_encoding($outputUTF-8"" $html_char); } $info = curl_getinfo($ch); curl_close($ch); $returntemp = array('output'=>$output'info'=>$info); return $returntemp['output']; }
$url='http://www.ip138.com/';
$date=get_html($url);echo $date;
解决方案
代理服务器如果设置了x-forward-for,并且报告你的原始ip,那么网站可以得到你的原始ip,被称为透明代理。不报告的叫做匿名代理
时间: 2024-12-28 19:16:06