Skip to content

IP 属地 ​

Artalk 内置用户 IP 属地展示功能,并且你可以设置显示的精度:精确到市、省。

该功能默认关闭,你可在 Artalk 控制中心设置中启用 IP 属地展示功能。

IP 属地数据库 ​

Artalk 支持以下两种数据库格式,选择其中一种即可。已有配置和数据库文件可以继续使用。

qqwry 标准版(.ipdb,推荐) ​

metowolf/qqwry.ipdb 的标准版提供中文国家、省、市字段,一个文件同时支持 IPv4 和 IPv6。

将文件保存为 ./data/qqwry.ipdb,并将 ip_region.db_path 设置为该路径。请保留 .ipdb 扩展名,Artalk 会据此选择 IPDB 读取器,无需额外设置数据库类型。不要使用 qqwry.raw.ipdb 原版,它没有独立、完整的省市字段,不适用于这里的精度设置。

IPDB 读取器会在首次查询时将整个文件载入内存,后续查询复用已加载的数据,不受 cache.enabled 开关影响。替换 IPDB 文件后,请重启 Artalk 以加载新数据。

ip2region(.xdb) ​

下载后请手动放置到 ./data/ 目录下,文件命名为:ip2region.xdb

Artalk 兼容 ip2region 上游的旧版(国家|区域|省份|城市|运营商)和新版(国家|省份|城市|运营商|国家代码)数据。已有数据库无需改名或转换。

精度设置 ​

你可在设置中找到该配置项。

显示精度描述示例
province精确到省(默认)四川
city精确到城市四川成都
country精确到国家、地区中国

省份数据缺失时,province 精度回退到国家或地区,不显示更精确的城市。

配置文件:

yaml
# IP 属地
ip_region:
  # 启用 IP 属地展示
  enabled: false
  # 数据文件路径(.xdb 或标准版 .ipdb)
  db_path: ./data/qqwry.ipdb
  # 显示精度 ["province", "city", "country"]
  precision: province

获取准确的 IP 地址 ​

如果你正在使用 CDN 或者 Nginx 等可信的反向代理服务器,那么你需要在「设置」-「服务器」选项 -「代理标头名 (http.proxy_header)」填写包含用户真实 IP 的请求头字段名,如:X-Real-IP(为了安全,该字段默认为空)。修改后,请手动重启 Artalk 服务以生效。

否则 Artalk 将无法获取到用户真实 IP 地址(如果使用了 Docker,可能获取到的 IP 始终是 172.17.0.X,这是 Docker 虚拟网卡的 IP)。

隐私权 ​

Artalk 评论将记录用户的 IP 和 User-Agent 数据,此类数据有关用户隐私权,请在你的网站隐私政策中声明,并提示用户评论将会收集隐私数据。

贡献者

页面历史