[不花钱站长]:从免费域名开始[0元] Oracle永久免费VPS[0元] VPS环境搭建免费脚本[0元] 秒变大盘挂载免费网盘[0元] 小白免费采集器1天500W[0元] CF免费DNS+CDN服务[0元]
[零基础网赚]:撸本站免费源码[0元] 网站强引免费蜘蛛法[0元] 图片视频文件免费存储[0元] 外链轻松发布免费友链[0元] 入坑免费教程学习源代码[0元] 网上百种+赚钱联盟推荐[?元]

↑↑VPS推荐网 WWW.VPS.COM.IN 稳定 便宜 免备案↑↑


您现在的位置是:首页 > 全球[VPS测评] >  永久免费VPS 香港VPS,国外永久免费VPS

thinkphp IP 获取和定位

全球[VPS测评]来源:VPS推荐网点击:1602
【性价之王】【线路之王】【价格之王】【配置之王】
【免费之王】【香港首推】【梯子之王】【独服之王】
thinkphp IP 获取和定位

系统内置了 get_client_ip 方法用于获取客户端的 IP 地址,使用示例:

$ip = get_client_ip();

上面的方法会返回一个客户端 IP 地址,但是如果要根据 IP 定位功能,则需要配合 IP 地址库文件(详见:http://www.kancloud.cn/manual/thinkphp/1885),网上下的 IP 地址库都不是很全面,因此我采用了使用第三方 API 获取 IP 定位信息的方法,这里选用的是百度 API 集市中的一个免费 IP 地址查询 API(详见:http://apistore.baidu.com/apiworks/servicedetail/114.html)。

具体实现方法:

       function getIpInfo($ip){     $ch = curl_init();     $url = 'http://apis.baidu.com/apistore/iplookupservice/iplookup?ip='.$ip;     $header = array(         'apikey:'.'你的 apikey',     );     // 添加 apikey 到 header     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);     // 执行 HTTP 请求     curl_setopt($ch, CURLOPT_URL, $url);     $res = curl_exec($ch);     $arr = (array)json_decode($res,true);     if($arr['errNum']==0){     $ip=$arr['retData']['ip'];     $country=$arr['retData']['country'];     $provice=$arr['retData']['provice']=='None'?'':$arr['retData']['provice'];     $city=$arr['retData']['city']=='None'?'':$arr['retData']['city'];     $district=$arr['retData']['district']=='None'?'':$arr['retData']['district'];     $carrier=$arr['retData']['carrier']=='未知'?'':$arr['retData']['carrier'];     eturn($country.' '.$provice.' '.$city.' '.$district.' '.$carrier.' '.$ip);     }     else{     return($arr['errMsg']);     }

在需要 ip 定位的地方调用这个方法,传入通过 get_client_ip 方法获取的 ip 即可,成功则返回详细 ip 定位信息,失败则返回错误代码,也可以根据 API 说明,进一步返回更友好的错误信息。



猜你可能想看的VPS


转载请注明原文地址:http://140.238.13.167:12355/read-217702.html

下一篇       上一篇