lua-resty-digitalelement
查询 DigitalElement 数据库文件
$ opm get cebollia/lua-resty-digitalelement
lua-resty-digitalelement
用于将 IPv4 地址与 DigitalElement NetAcuity 数据库进行查询的 Lua 库,这些数据库已导出到 JSON 文件。
安装
opm get revcontent/lua-resty-digitalelement
运行
# nginx.conf
init_worker_by_lua_block {
de = require("digitalelement")
_, err = de.init({
geo = { file = "/usr/local/digitalelement/geo.json" },
vpn = { file = "/usr/local/digitalelement/vpn.json" }
})
if err then
for k, v in pairs(err) do
ngx.log(ngx.ERR, "Failed to load DigitalElement " .. k .. " database: " .. v)
end
end
}
local res, err = de.lookup("geo", ngx.var.remote_addr)
if err then
ngx.log(ngx.ERR, "IP Geo Lookup Failed: " .. err)
else
ngx.say(res["country"])
ngx.say(res["region"])
ngx.say(res["city"])
-- ... additional database keys
end
local res, err = de.lookup("vpn", ngx.var.remote_addr)
if err then
ngx.log(ngx.ERR,"IP VPN Lookup Failed: " .. err)
else
ngx.say(res["vpn-proxy-type"])
ngx.say(res["vpn-proxy-description"])
ngx.say(res["vpn-proxy-names"])
-- ... additional database keys
end
导出 DigitalElement 文件
您需要将数据库下载到本地电脑并安装 netacuity-textfile-creator.sh
实用程序。完成此操作后,运行以下命令生成此包可以导入的输出文件。
./netacuity-textfile-creator.sh --db_path=/path/to/db --db=1 --no_compress --output_format=json --output_file=./output.json
创建自定义 IP 范围文件
如果您想利用自己的数据来分析用户 IP 地址,请创建一个文件,每行都是一个 JSON 字符串。所需的键值对是 start-ip
和 end-ip
。
{"start-ip":"192.168.0.0","end-ip":"192.168.0.255","name":"My Home Network"}
{"start-ip":"10.0.0.0","end-ip":"10.0.255.255","name":"My Work Network","contact":"user@domain"}
{"start-ip":"74.2.11.3","end-ip":"74.2.11.3","name":"School","note":"Each range can have unique keys."}
未来更新
更快的导入数据
支持 CSV 和压缩文件
更好的尝试优化,目前仅优化了第四个八位字节。 =back
POD 错误
嘿!上面的文档有一些编码错误,解释如下:
- 大约第 89 行
-
=over 未关闭 =back
作者
Richard Onyon (cebollia)
许可证
2bsd
依赖项
hamishforbes/lua-resty-iputils >= 0.3.0, openresty/lua-resty-string >= 0.11, luajit
版本
-
查询 DigitalElement 数据库文件 2022-03-18 13:06:44