在 Matomo 中安装 ip2location 插件

matomo 是开源的分析网站访客流量信息的工具(在unraid中安装matomo的方法见这里), ip2location 是motomo中提供访客ip实际位置的插件。相较于matomo自带的ip地址数据库,ip2location可以提供更精确的访客ip的实际位置(因为我没有大量的数据,也就没能做详细测试,姑且可以相信插件制作方的宣传)。

在 Matomo 中安装 ip2location 插件的准备

当然,首先你要在unraid中已经安装好了matomo这个docker,并且unraid已经安装好了User Scripts插件。然后在网站https://lite.ip2location.com/注册用户。账户注册之后点击页面右上角账户名下拉菜单的“database download”按钮,然后复制保存下面的token。

ip2location geekmiao.com 极客老猫 maotong 插件

选择下面的ip实际地址(只能显示城市)数据文件进行下载,我选的之这个是比较复杂的ipv6数据,其中也包括ipv4的实际地址信息,大约155M。把下载的数据文件复制到unraid的appdata/matomo/misc/文件夹。复制过程可能需要调整一下appdata文件夹的smb共享权限。

ip2location geekmiao.com 极客老猫 maotong 插件

在unraid的docker管理界面点击代开maotomo的docker管理命令行窗口,执行下面命令(这些命令在执行自动更新脚本时需要到):

ip2location geekmiao.com 极客老猫 maotong 插件

更新docker里面的apt软件目录

apt update

安装wget命令

apt install wget

安装unzip命令

apt install unzip

在 Matomo 中安装和设置 ip2location 插件

在matomo的窗口点击右上角设置按钮-左侧的平台/商城-右侧搜索栏输入:ip2location,在结果栏点击安装。

点击左侧菜单:系统/ip2location;在右侧栏横线上方输入ip地址数据保存位置:/var/www/html/misc/IP2LOCATION-LITE-DB9.IPV6.BIN;点击保存。

ip2location geekmiao.com 极客老猫 maotong 插件

点击左侧菜单:系统/地理位置;在右侧栏选择:ip2location,然后保存。

然后重启matomo,就可以使用ip2location提供的地理位置信息了。

自动更新ip2location插件的ip地址数据

ip2location插件的ip地址数据也可以自动实现定时自动更新,需要先根据你的实际情况修改下面代码:

#!/usr/bin/bash

# Configuration
TOKEN="把你的token替换这里"
CODE="DB9LITEBINIPV6"

DBPATH="/var/www/html/misc/"

# ----- DO NOT EDIT ANYTHING BELOW THIS LINE ----- #

error() { echo -e "\e[91m[ERROR: $1]\e[m"; }
success() { echo -e "\e[92m$1\e[m"; }

echo "+--------------------------------------------------+"
echo "|   IP2LOCATION AUTOMATED DATABASE UPDATE SCRIPT   |"
echo "|   ============================================   |"
echo "|        Website: http://www.ip2location.com       |"
echo "|        Contact: [email protected]          |"
echo "+--------------------------------------------------+"
echo ""

echo -n "Check for required commands......................... "

for a in wget unzip wc find grep; do
	if [ -z "$(which $a)" ]; then
		error "Command \"$a\" not found."
		exit 0
	fi
done

success "[OK]"

if [ ! -d /tmp/ip2location ]; then
	echo -n "Create temporary directory.......................... "
	mkdir /tmp/ip2location

	if [ ! -d /tmp/ip2location ]; then
		error "Failed to create /tmp/ip2location"
		exit 0
	fi
	success "[OK]"
fi

cd /tmp/ip2location

echo -n "Download latest database from IP2Location website... "

wget -O database.zip -q http://www.ip2location.com/download?token=$TOKEN\&file=$CODE 2>&1

if [ ! -f database.zip ]; then
	error "Download failed."
	exit 0
fi

if [ ! -z "$(grep 'NO PERMISSION' database.zip)" ]; then
	 error "Permission denied."
        exit 0
fi

if [ ! -z "$(grep '5 times' database.zip)" ]; then
         error "Download quota exceed."
        exit 0
fi

if [ $(wc -c < database.zip) -lt 102400 ]; then
	error "Download failed."
	exit 0	
fi

success "[OK]"

echo -n "Decompress database package......................... "

unzip -q -o database.zip

if [ -z $(find . -name '*.BIN') ]; then
	echo "ERROR:"
	exit 0
fi

NAME="$(find . -name '*.BIN')"

success "[OK]"

echo -n "Move BIN database................................... "

mv -f $NAME $DBPATH

success "[OK]"

echo -n "Perform final clean up.............................. "

rm -rf /tmp/ip2location

success "[OK]"

success "DONE: IP2Location database has been updated."

把上面代码保存为download-ip2location-bin.sh文件,注意:要把格式转换为unix(f),可以使用windows版的notpad++编辑和转换。然后把这个脚本文件复制到unraid的appdata/matomo/文件夹。 当然,你也可以直接使用binhex-krusader这个docker工具直接在appdata/matomo/文件夹编辑并生成这个文件。然后把下面脚本命令输入到unraid User Script插件中新建的脚本任务

#!/bin/bash
docker exec --user 0 Matomo /var/www/html/download-ip2location-bin.sh

脚本任务后面添加自定义时间规则:15 8 1 * *,然后保存。之后就可以每月自动更新下载ip数据。

留下评论

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