解决WordPress 插件 Easy Location 无法获取IPV6位置

前言

使用Easy Location在评论区插入用户位置时,若用户使用IPv6地址,则无法获取其位置信息。

检查插件源码发现,作者使用的是IPIP.net提供的测试版IPv4数据库,因此不支持IPv6解析。经过不断寻找,最终找到了一位开发者整理的纯真地理位置数据库,该数据库同时支持IPv4和IPv6,并且兼容IPIP的数据格式,可以直接替换使用!

先看一下效果:

测试评论

那么就让我们开始操作吧。

下载数据库

下面是大佬开源整理好数据库GitHub地址:

可以进GitHub下载,或者直接点击下载

大佬提供了两个版本的数据库,经过测试这里我们选择标准版效果比较好。

下载完之后将数据库放到插件根目录(/wp-content/plugins/easy-location)。

可以把数据库名字改成与原数据库名相同(ipipfree.ipdb),现在就可以支持IPV6了,但是在使用的时候很大概率IPV6地址的位置还是不会显示。嫌麻烦到这就可以结束了,要想更好的效果可以接着跟着操作。

修改代码

查询IP位置时数据库返回的值为:

["国家名称","地区名称","城市名称","地区名称","所有者域名","isp_域","国家代码","大陆代码"]

插件原作则直接取得是“地区名称”,但是在IPV6时”地区名称“可能为空,这时候就要返回“国家名称”来显示大概的用户位置。

在插件根目录打开easy-location.php文件,找到get_user_city( )函数:

将整个if判断替换为下方代码:

if (!function_exists('get_user_city')) :
	function get_user_city($ip)
    {
        $locationInfo = false;
        
        try {
            $reader = new Reader(__DIR__ . '/qqwry.ipdb');
            
            $locationArray = $reader->find($ip, 'CN');
            
            if (is_array($locationArray)) {
                $city = isset($locationArray[1]) ? trim($locationArray[1]) : '';
                $country = isset($locationArray[0]) ? trim($locationArray[0]) : '';

                if (!empty($city)) {
                    $locationInfo = $city;
                } 
                elseif (!empty($country)) {
                    $locationInfo = $country;
                }
				else {
                    $locationInfo = "暂无";
                }
            }
        } catch (\Throwable $th) {
			return false;
		}
        return $locationInfo;
    }

endif;
$reader = new Reader(__DIR__ . ‘/qqwry.ipdb’); 后面qqwry.ipdb要与你自己的数据库文件名一致。

保存文件重启网站就可以看到效果啦。

最后

代码可能还有情况没有考虑到,如果发现bug可以在评论中提出,如果有更好的实现方法也可以提出一起交流。

Easy Location原帖:WordPress 插件 Easy Location – Fatesinger

qqwry.ipdb数据库Github地址:metowolf/qqwry.ipdb: 🐈️ 纯真数据库 IPIP.net 格式版,Make qqwry.ipdb Great Again!!!

本文为DUSK原创文章。
文章作者:DUSK
文章标题:解决WordPress 插件 Easy Location 无法获取IPV6位置
文章链接:https://blog.dusklane.top/archives/296
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自DUSK

评论

  1. 向日葵
    Windows Chrome
    1 周前
    2025-9-27 14:01:09

    感谢分享

    来自山西

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇