更新日志: = v13.01.01 = * 替换本地ip2country查询逻辑,改成接口查询 * 支持IPv6 国家图标显示 * 增加ip转国家地址配置功能 * IPv6模式下,地址显示从Unknow改为未知地址 * 修复部分国旗不显示bug * 可用查询服务器: 1.http://ip.nai.dog/getIpInfo?addr=114.114.1.1 配置路径填写:http://ip.nai.dog/getIpInfo?addr= 2.https://api.country.is/162.245.238.69 配置路径填写:https://api.country.is/ 说明:https请求需要配置php https模块,否则会失败,如果失败请使用我提供的免费接口,或者参考这个项目自己部署查询服务:https://github.com/realchandan/Ip-geo-API
效果:
之所以要升级是因为这个原因:
这个问题其实很久之前就发现了,但是一直没去找具体原因。今天看了下代码发现代码是通过这个代码实现的:
function CID_get_country($ip) { require_once(dirname(__FILE__).'/ip2c/ip2c.php'); if (isset($GLOBALS['ip2c'])) { global $ip2c; } else { $ip2c = new ip2country(dirname(__FILE__).'/ip2c/ip-to-country.bin'); $GLOBALS['ip2c'] = $ip2c; } return $ip2c->get_country($ip); }
而这段代码依赖于ip-to-country.bin这个二进制文件,这个文件到现在已经有十几年历史了,并且数据只有ipv4。于是想着去更新下ip地址库,但是找了一圈下载了个csv格式的,官方提供的查询代码需要导入数据库(相关免费版本数据和代码从这个网址下载:https://db-ip.com/db/)。这个作法老觉得有点费劲,尤其是,主要是,姐姐不会用插件写入数据库啊,如果要手工导入,那插件用来干嘛捏。
后来从github上找到一个开源项目,可以自己部署一个:
https://github.com/realchandan/Ip-geo-API
并且是支持ipv6的。这样就简单了很多,当然也有不需要授权的免费接口:https://api.country.is/162.245.238.69
https://country.is
目前插件支持这两种接口形式,可以自己选择要使用的接口。但是:
https请求需要配置php https模块,否则会失败,如果失败请使用我提供的免费接口http://ip.nai.dog/getIpInfo?addr=114.114.1.1
本地查询版本:
https://h4ck.org.cn/2023/08/wordpress-%E8%AF%84%E8%AE%BA%E6%98%BE%E7%A4%BAip%E5%BD%92%E5%B1%9E%E5%9C%B0%E6%8F%92%E4%BB%B6-wp-useragent%E5%A2%9E%E5%BC%BA%E7%89%88-12-02-01/
服务器地址配置见插件页面,
如果不想使用接口查询方式,请不要升级插件!
如果不想使用接口查询方式,请不要升级插件!
如果不想使用接口查询方式,请不要升级插件!
文件哈西:
MD5 (/Applications/phpstudy/WWW/127.0.0.1/wp-content/plugins/wp-useragent13.01.01.zip) = 0c905df0ea184b00671826f669659aa8
下载地址:
88 comments
但是设置显示flag,评论功能就用不了了,这是设原因呀
啥 flag?不知道啊
显示国家旗帜
需要设置查询地址,参考文章中的查询链接配置一下。
有用有用,找了很久啦
贵站速度有点慢啊
今天下午一直在调试,两个网站数据表头一致,在Redis里乱套了,数据乱窜。已修复。欢迎互访
忘记登录了,评论后,隐藏内容未展现,劳驾博主重新审核一下,谢谢
不登录,勾选保存用户信息应该也 ok 的