在PHP开发过程中,经常会用到获取IP,分析判断的需求.
之前一直用收费API 稳定快速,小项目还好,大项目,每月消耗还是不少的,特此找了一个免费的接口地址.
废话不多,直接上编写好的代码
> error_reporting(0); //屏蔽非致命错误
> header('content-type:application/json;charset=utf8');//网页输出格式 JSON
>
> $host = "http://ip.taobao.com/service/getIpInfo.php"; //接口地址
> //$querys = "ip=".get_client_ip();//接口参数 $querys =
> "ip=".$_SERVER["REMOTE_ADDR"]; $url = $host . "?" . $querys; //接口完整地址
>
> $curl = curl_init();//定义curl_init访问 curl_setopt($curl, CURLOPT_URL,
> $url);//访问api接口地址 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
> $data = curl_exec($curl);//接口返回信息 并解析. curl_close($curl); //获取JSON文本
> echo $data;//输出接口信息
>
> //PHP 解析JSON各项参数 $obj=json_decode($data); echo
> $obj->data->country;//国家 echo $obj->data->country_id;//国家ID echo
> $obj->data->area;//地区 echo $obj->data->area_id;//地区ID echo
> $obj->data->region; echo $obj->data->region_id;//省份ID echo
> str_replace("市","",$obj->data->city);//城市 echo $obj->data->city_id;
> //城市ID echo $obj->data->county; //网络运营商 echo $obj->data->county_id;
> //运营商ID echo $obj->data->isp; //电信经营许可 echo $obj->data->isp_id;
> //电信经营许可ID echo $obj->data->ip; //查询ID
其实关于免费的不止这一个,还有几个,不过都没有这个好用.
大家看看吧.
腾讯的IP地址API接口地址: fw.qq.com/ipaddress
新浪的IP地址查询接口:int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
新浪多地域测试方法:int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=219.242.98.111
搜狐IP地址查询接口(默认GBK):pv.sohu.com/cityjson
搜狐IP地址查询接口(可设置编码):pv.sohu.com/cityjson?ie=utf-8
搜狐另外的IP地址查询接口:txt.go.sohu.com/ip/soip 淘宝的IP接口地址:ip.taobao.com/instructions.php 还有一个 API比较全面 whois.pconline.com.cn
这个很强大 也比较详细 但是这个有问题 他JSON格式 属于回调 另外收费的API接口地址:
百度的API:apistore.baidu.com/apiworks/servicedetail/114.html
国外IPAPI:www.ip-api.com 91查API:www.91cha.com/api/ip.html
民间Ip:xn--ip-im8ckc.com 中国IP地址信息查询系统: cnisp.org
另外自己也可以编写程序自己筛选ip地址 方法一:利用apnic获取准确的IP地址blog.sina.com.cn/s/blog_495161310100js5t.html