通过IP对接API接口返回地区信息,原来的淘宝API打不开了,于是找到了http://whois.pconline.com.cn/,访问速度也不错,感谢太平洋电脑城提供的API接口。在此记录下。
function get_ip(){
//判断服务器是否允许$_SERVER
if(isset($_SERVER)){
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
}else{
$realip = $_SERVER['REMOTE_ADDR'];
}
}else{
//不允许就使用getenv获取
if(getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv( "HTTP_X_FORWARDED_FOR");
}elseif(getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
}else{
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}
function getCity(){
$ip = get_ip();
if($ip=='127.0.0.1'){
return false;
}
//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://whois.pconline.com.cn/ipJson.jsp?ip='.$ip);
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 0);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//执行命令
curl_multi_getcontent( $curl );
$data = curl_exec($curl);
$data=mb_convert_encoding($data, "UTF-8", "GBK");
//关闭URL请求
curl_close($curl);
//if(window.IPCallBack) {IPCallBack({"ip":"182.98.246.69","pro":"江西省","proCode":"360000","city":"赣州市","cityCode":"360700","region":"","regionCode":"0","addr":"江西省赣州市 电信","regionNames":"","err":""});}
preg_match('#","city":"(.*?)","#i',$data,$match);
return isset($match[1])?$match[1]:'';
}
<?php
//更简单的获取方式
$url="http://whois.pconline.com.cn/ip.jsp?ip=".'117.44.36.181';
$data=file_get_contents($url);
$data=trim(mb_convert_encoding($data, "UTF-8", "GBK"));
var_dump($data);
更多接口访问方式参考http://whois.pconline.com.cn/
相关文章