说明:个人是购买某ip代理
修改文件的路径: 项目根目录\extend\net\Http.php
只需修改 curlGet() 方法, 同时加1个代理ip的方法 xiongmaodaili() 即可.
代码如下
/** * 说明:这个方法是自己加的 * 熊猫代理 * 地址: http://www.xiongmaodaili.com/ * 账号: xxx */ public static function xiongmaodaili() { $orderno = 'xxx';//订单号 $secret = 'xxx';//密钥 $time = time(); $sign = strtoupper(md5("orderno={$orderno},secret={$secret},timestamp={$time}")); $auth = 'sign='.$sign.'&orderno='.$orderno.'×tamp='.$time; return "Proxy-Authorization:".$auth; } //通过curl get数据 //说明: 这个方法是原先有,但修改了些参数 static public function curlGet($url,$timeout=60,$header="") { //说明: 我的服务器是被 12zw点com 给封ip, 所以, 只有采集 12zw点com 才走代理 $has_proxy = strpos($url,'12zw.com') != false ? true : false; //是否走代理 $header=empty($header)?explode("\r\n",self::defaultHeader()):array($header); if ($has_proxy){ $proxy_header = self::xiongmaodaili();; if (count($header) > 1 ){ $header[] = $proxy_header; } else { $header[0] .= $proxy_header; } } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//模拟的header头 if(self::hasHttps($url)){ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); } //自己加的代理逻辑,个人买的是按量计算 if ($has_proxy){ curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,true); curl_setopt($ch,CURLOPT_PROXYAUTH,CURLAUTH_BASIC);//代理认证模式 curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);//使用http代理模式 curl_setopt($ch, CURLOPT_PROXY, "http://dynamic.xiongmaodaili.com:8088"); //按量计费的url } $result = curl_exec($ch); $http_code = curl_getinfo($ch,CURLINFO_HTTP_CODE); curl_close($ch); if($http_code==200){ //说明 , 个人购买的这个代理, 如果没钱或者有错误,会返回这个东东, 自己加层判断.不同代理不一样 if ($has_proxy && strpos($result,'"code":200')){ //说明代理有错误 return false; } return $result; }else{ return false; } }
大家多多交流ip代理的事. 同时欢迎推荐下ip代理稳定, 费用合理的ip代理服务商