这两天各大互联网平台为了净化网络环境,纷纷推出IP属地显示功能
今天有空我也跟跟风把本站评论的属地显示也折腾出来了
动手
首先我这边使用的接口是 太平洋网络IP地址查询web接口
这个接口很强大,基本上所有用到的需求都能满足
我们这边使用的是第四个接口jsDom.jsp
这里我们用到的参数有三个
- 第一个是ip,这个从评论表就能拿到
- 第二个是level,这个是用来设置输出精度的,=1/=2/=3分别代表只输出省名称/输出省市名称/输出省市区名称
- 第三个就是domId,用来指定结点ID
然后就开始了(本博客使用的是Typecho博客系统)
- 首先找到现在使用的主题的评论展示的代码,这个根据主题不同位置也不一样,我的这个在主题文件夹comments.php文件中
- 然后再需要的地方加上一个的标签,这个标签id需要是该条评论的id,前缀可以随便加一个以便区分
- 最后再标签后面加上js脚本,脚本的url参数中需要注意:level根据需要自定义,domId和上面标签的id一样,ip则是该条评论的ip
注意事项
改完后可能会出现调用url返回403错误的问题,这时可以在博客主题的head中加上no-referrer的标签
<meta name="referrer" content="no-referrer"/>
5月1日更新:
由于需要解决url返回403错误的问题,昨晚在博客的head中加了no-referrer的meta标签,导致今天百度统计无法统计到博客访问信息,然后使用了新的方法解决这个问题,就是在script标签中设置referrerpolicy
属性为no-referrer
<script referrerpolicy="no-referrer" src="https://whois.pconline.com.cn/jsDom.jsp?level=1&domId=ip-<?php $comments->theId(); ?>&ip=<?php echo $comments->ip; ?>"></script>
不错,有用
看看我来自哪里?
网站找了很久,现在的纯真数据库最新版只到5月份了吧,往后的只能在微信公众号获取,现在网上搜索到的利用纯真数据库自动更新的脚本都是失效的,我利用脚本手动下载了最新的数据库,然后去微信公众号下载了exe程序,安装后拿到数据库对比MD5值,数据不一样,所以如果用纯真的话要么自己想办法手动更新,要么就是其它在线接口
对的,各有利弊吧
离线的ip地址库多少都会有时效性的问题,在线的接口也会受限于第三方
有条件的 可以用python写一个简单的api 读取纯真数据库
这样取到的数据更精准 而且不会受限于第三方API
有现成的可以用就将就用了
自己写太麻烦,主要是不想折腾,哈哈
用 修改后的代码 放上网站就错误了
哈,我看你的博客已经改好了呀~
meta name="referrer" content="no-referrer
用的这个 百度统计 不计数了
script referrerpolicy="no-referrer" src="https://whois.pconline.com.cn/jsDom.jsp?level=1&domId=ip-<?php $comments->theId(); ?>&ip=<?php echo $comments->ip;
用这个 就错误 Call to a member function theId() on null
500
还是用的这个
加我微信mr_wixy,我帮你看看吧~
我也来试一下,我来自哪里
四川的友友~
看看我来自哪里?
包邮区,浙江~
看下我的归属地,目测到市一级比较刺激吧。
到市级也是可以的,但是感觉有时候不太准确
Typecho也有大神制作出来了,但体验不大好…加载变慢了。
这个基本都要调ip查询接口,肯定会慢一些的~