【教程】让WP-UserAgent[增强版 13.01.01]支持IPv6归属地显示

写在本文的开始,本文需要一定的编程基础以及系统配置能力,如果没有的话那就先不要照着抄了,抄错了我可不管哈,嘻嘻。之所以要继续完善归属地显示是因为ipv6的地址目前显示的都是未知地址,对于有强迫症的来说,那当然是不能忍啦。

但是至于怎么显示ipv6地址却是个问题,目前纯真的ipv6只有收费版,其他的多数地址也是收费的。

1.需要一个能够显示ipv6归属地的数据库或者服务或者代码

如果只是显示大致区域不用那么麻烦,还是基于github的开源项目来实现就ok,例如这个:

https://github.com/EP-u-NW/ip_location_server

项目使用java开发,要求系统内存至少1.5g以上,因为数据库直接加载到了内存中,所以系统性能一般的话就不建议运行这个东西了。程序在启动的时候会自动下载ip地址数据库文件,由于github经常被墙,所以可以修改GitHubFileWatcher下载代码,改为如下所示:

public String getLastCommitFileUrl() {
    return "https://ghproxy.com/https://github.com/" + githubUser + "/" + githubRepo + "/raw/" + getLastCommitWithFile()
            + "/" + githubFile;
}

下载的时候会自动使用https://ghproxy.com/代理进行加速,防止文件下载失败。其余的就比较简单了,直接mvn package编译即可。如果没有编译环境可以尝试我编译好的jar文件,测试环境ubuntu 22.04.

文件哈希:

名称: app.jar
大小: 23599782 字节 (22 MiB)
CRC32: 0445EA2D
CRC64: 739F5853EB5A5882
SHA256: e2f0244e70df50fee34c92771a867c098816c497b24e383f679c1dddb00cf6c0
SHA1: 7edc6e91c725899d8cfdf847537ac662dd4392ce
BLAKE2sp: 498ca9a496b979d5a258ce2a5127f3fb0cf4e08e83ffca791d654e033c189a7a

下载链接:

温馨提示: 此处隐藏内容需要发表评论,并且审核通过后才能查看。
(发表评论请勾选 在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。
(请仔细检查自己的昵称和评论内容,以免被识别为垃圾评论而导致无法正常审核。)

启动服务之后建议使用nginx进行反代,我在测试的时候使用php的file_get_contents函数直接请求java服务会导致超时,这个就很神奇,不知道是神马原因。反代代码(10086为java服务端口):

location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;

        proxy_pass http://127.0.0.1:10086;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
proxy_set_header Accept-Encoding "";

}

如果你测试没有问题可以不需要ngxinx反代。

2.修改wp-useragent代码:

1)修改ip2c-text.php中的代码(可选):

if($ip2num < $ipNum) {
           if($Middle == $BeginNum) {
               fclose($fd);
               return 'unknow_address'; # 这里原来为 未知地址 改为unknow_address
           }
           $BeginNum = $Middle;
       }

2)修改插件根目录下的wp-useragent.php,源代码:

    if ($wpua_show_text_icons === 'icons_and_text' ){
    	$wpua_useragent.= '  '. CID_get_flag_without_template($ip, true, false);
    	$wpua_useragent.=  convertip($ip);
    }
    if ($wpua_show_text_icons === 'text')
    {
    $wpua_useragent.=  '  '.  convertip($ip);
}

修改为:

$city_name =  convertip($ip);
        if ($city_name == 'unknow_address'){
        	$url = "http://127.0.0.1:10087/lookup?ip=".$ip;
     	// return$url;
        $resp = file_get_contents($url);
        $resp_arr = explode(",",$resp);
        $city_name = end($resp_arr);
        }
        if ($wpua_show_text_icons === 'icons_and_text' ){
        	$wpua_useragent.= '  '. CID_get_flag_without_template($ip, true, false);
        	//$wpua_useragent.=  convertip($ip);
        	$wpua_useragent.=  $city_name;
        }
        if ($wpua_show_text_icons === 'text')
        {
        //$wpua_useragent.=  '  '.  convertip($ip);
        $wpua_useragent.=  '  '.   $city_name;
    }

http://127.0.0.1:10087/lookup?ip= 这个地址换为你自己的查询地址哦,不然肯定是不行的。

3.到这里就ok啦,看看效果吧:

目前暂时不准备往插件内集成,需要时没有可靠的ip转城市的服务,目前我在工控机上自己起了个服务,如果有合适的服务可以开放,姐姐可以找时间把这个功能集成到插件内。嗯,暂时就先酱紫吧。又折腾了一上午呢,正好可以等外卖,准备吃饭啦。

☆版权☆

* 网站名称:obaby@mars
* 网址:https://lang.ma/
* 个性:https://oba.by/
* 本文标题: 《【教程】让WP-UserAgent[增强版 13.01.01]支持IPv6归属地显示》
* 本文链接:https://lang.ma/2023/08/12909
* 短链接:https://oba.by/?p=12909
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

29 comments

      1. 公主 Queen 
        Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 移动

        你是要关闭自己的ipv6还是网站的ipv6?网站的话,cdn后台的设置看一下。自己电脑的ipv6可以通过网络连接的属性,去掉tcp/ip协议6的✓关闭。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Android 10 Android 10 cn山东省青岛市 联通

      这每天都有注册的啊,真不错。姐姐可以直接把你的文章搬过来不 heart 不想自己写呢,我也想要这么多流量。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 移动

      嘘,告诉你个小秘密,不要告诉别人哈。姐姐是边搜索边写的~~ kiss

      1. Level 5
        Google Chrome 115 Google Chrome 115 Windows 10 Windows 10 usCalifornia San Jose

        这样更是厉害了,语言之间应该是相通的,精通一门,其它的也是手到擒来,精通只是多练多写的问题。好吧,我一门都不精通,只是半吊子。懂一点点py、一点点R,两点html+css+js。

        1. 公主 Queen 
          Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 移动

          嗯嗯。不过作为一个实用主义者,一般不是逼急了,不去学习新的预言。哈哈哈。
          从最开始写汇编、C到现在神马都写,姐姐也很绝望呢,能怎么办呢。
          不过css+html+js是真不专业(完全不会),哈哈哈,看不见的东西还行,这种直接给用户看的就不专业了。主要是前端技术更新太快,完全不知道怎么跟。 cry

  1.  Level 6
    Google Chrome 115 Google Chrome 115 Mac OS X 10.15 Mac OS X 10.15 cn浙江省杭州市 华数宽带

    看你连着发IP归属地显示的文章,给了我很大启发。因此我决定专门写一遍类似的文章。
    写我为什么不显示归属地,嗯。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 移动

      嗯嗯。我是一旦开始了,如果有些欠缺就觉得不是很满意,类似强迫症的那种。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 移动

      现在我是跑在工控机上,内存基本快跑满了。所以没有提供公共接口服务。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Android 10 Android 10 cnAsia/Shanghai

      人家原版的的还在,我这是魔改版的。之前给wp的微博插件提交的代码到现在还没通过。所以不如直接下载安装压缩包快。改的东西太多了也不见得是原作者想要的。哈哈哈

  2. Level 1
    Google Chrome 109 Google Chrome 109 Windows 10 Windows 10 cn安徽省合肥市 电信

    好小子,浏览你的网站,我对象老是说我又在看黄网了… dance bye

  3. Level 1
    Mozilla Compatible Mozilla Compatible iPhone iOS 16.4 iPhone iOS 16.4 cn上海市 移动/GSM/TD-SCDMA/LTE共用出口

    我也试试看是否好用,博主新年快乐。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注