今天在给客户修改主题时候有一项功能,需要显示用户所在国家、省份以及城市,通过新浪的IP查询工具接口利用json可以快速实现
第一步:在function里面丢进下面的代码:
function liuronghuan_getip(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
$ip = getenv("HTTP_CLIENT_IP");
} else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
$ip = getenv("HTTP_X_FORWARDED_FOR");
} else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
$ip = getenv("REMOTE_ADDR");
} else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = "unknown";
}
return $ip;
}
function liuronghuan_getLocation($ip=''){
empty($ip) && $ip = liuronghuan_getip();
if($ip=="127.0.0.1") return "本机地址";
$api = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=$ip";
$json = @file_get_contents($api);//调用新浪IP地址库
$arr = json_decode($json,true);//解析json
$country = $arr['country']; //取得国家
$province = $arr['province'];//获取省份
$city = $arr['city']; //取得城市
if((string)$country == "中国"){
if((string)($province) != (string)$city){
$_location = $province.$city;
}else{
$_location = $country.$city;
}
}else{
$_location = $country;
}
return $_location;
}
第二步:在需要显示访客地址的地方写入下面的代码:
欢迎您,来自<?php echo liuronghuan_getLocation();?>的朋友!
感谢您的打赏,我们会更加努力的更新站点!
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:刘荣焕,谢谢!
shunwei 4年前 (2018-09-08)
不好使,加载半天出不来
小众网站 7年前 (2015-12-18)
多说留言用户可以显示省份城市吗?
liuronghuan 7年前 (2015-12-18)
@小众网站 多说没研究过,其实可以把留言用户的地址存储在数据库中进行调用
zero 7年前 (2015-12-12)
请问高亮代码插件的名字叫啥呢
liuronghuan 7年前 (2015-12-12)
@zero SyntaxHighlighter++ 绝对是wp上面最好用的代码插件
liuronghuan 7年前 (2015-12-12)
@zero SyntaxHighlighter 绝对是wp上面最好用的代码插件
微尚互动 7年前 (2015-12-10)
试过了,可以。欢迎回访
liuronghuan 7年前 (2015-12-12)
@微尚互动 已经回访
不锈钢屏风厂家 7年前 (2015-12-09)
来看看
DCBUG 7年前 (2015-12-07)
有种被侵犯的感觉。
liuronghuan 7年前 (2015-12-07)
@DCBUG 被哪个妹子侵犯了?