DedeCMS显示当前访问用户IP和地区的PHP调用方法

当前访问用户地域显示PHP方法

打开/include/extend.func.php,页面底部增加一下代码。

//获取用户IP
function check_address($ip){
if(empty($ip)){
    return '缺少用户ip';
}
$url = 'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query='.$ip.'&co=&resource_id=6006&t=&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=&_=';
//调用了百度接口
$str = file_get_contents($url);
//获取返回内容
$encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
$str = mb_convert_encoding($str, 'UTF-8', $encode);
//转化编码
$str=json_decode($str);
//转换为json类型
$str=$str->data[0]->location;
//取出数据
return $str;
}

采用百度的API接口,其他还有新浪、淘宝的,但测试后都失效了,由于接口经常变化,本例子也无法保证该接口长期有效。

模板调用方法如下:

{dede:php}
$str=check_address(GetIp());//GetIP()为当前访问用户的真实IP(xxx.xxx.xxx.xxx),输入结果为“广东省珠海市 中国移动”
$t1 = mb_strpos($str,'');//从结果中的第一个字符开始
$t2 = mb_strpos($str,'市 ');//从'市'左侧结束,当然可以保留该字符,从空格左侧开始,如' '
echo $s = mb_substr($str,$t1,$t2-$t1);
//输出结果为“广东省珠海”
{/dede:php}

如果需要输入IP,则使用{dede:php}echo GetIp(){/dede:php}

如果调用失效,找到系统设置 -> 其他设置 -> 模板引擎禁用标签,删除php保存即可


THE END

文章版权:作者:demo  来源:芝麻通  

免责声明:本站提供的一切软件、插件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

本文最后更新于 2022-08-12 13:14:22,如果你的问题还没有解决,可以加入建站交流群和群友们一起讨论。

评论区