lua-resty-maxminddb
用于读取 MaxMind 地理位置数据库的 Lua 库
$ opm get anjia0532/lua-resty-maxminddb
名称
lua-resty-maxminddb - 用于读取 MaxMind 地理位置数据库格式(也称为 mmdb 或 geoip2)的 Lua 库。
先决条件
错误修复
侵权道歉
https://github.com/anjia0532/lua-resty-maxminddb/issues/25
注意
[maxmind/libmaxminddb][]
[openresty][]
[GeoLite2 免费可下载数据库][linkGeolite2FreeDownloadableDatabases]
[maxmind/geoipupdate][]
安装
opm get anjia0532/lua-resty-maxminddb
摘要
local cjson = require 'cjson'
local geo = require 'resty.maxminddb'
if not geo.initted() then
geo.init("/path/to/GeoLite2-City.mmdb")
end
local res,err = geo.lookup(ngx.var.arg_ip or ngx.var.remote_addr) --support ipv6 e.g. 2001:4860:0:1001::3004:ef68
if not res then
ngx.log(ngx.ERR,'failed to lookup by ip ,reason:',err)
end
ngx.say("full :",cjson.encode(res))
if ngx.var.arg_node then
ngx.say("node name:",ngx.var.arg_node," ,value:", cjson.encode(res[ngx.var.arg_node] or {}))
end
#ipv4
$ curl localhost/ip=114.114.114.114&node=city
#ipv6
#$ curl localhost/ip=2001:4860:0:1001::3004:ef68&node=country
full :{"city":{"geoname_id":1799962,"names":{"en":"Nanjing","ru":"Нанкин","fr":"Nankin","pt-BR":"Nanquim","zh-CN":"南京","es":"Nankín","de":"Nanjing","ja":"南京市"}},"subdivisions":[{"geoname_id":1806260,"names":{"en":"Jiangsu","fr":"Province de Jiangsu","zh-CN":"江苏省"},"iso_code":"32"}],"country":{"geoname_id":1814991,"names":{"en":"China","ru":"Китай","fr":"Chine","pt-BR":"China","zh-CN":"中国","es":"China","de":"China","ja":"中国"},"iso_code":"CN"},"registered_country":{"geoname_id":1814991,"names":{"en":"China","ru":"Китай","fr":"Chine","pt-BR":"China","zh-CN":"中国","es":"China","de":"China","ja":"中国"},"iso_code":"CN"},"location":{"time_zone":"Asia\/Shanghai","longitude":118.7778,"accuracy_radius":50,"latitude":32.0617},"continent":{"geoname_id":6255147,"names":{"en":"Asia","ru":"Азия","fr":"Asie","pt-BR":"Ásia","zh-CN":"亚洲","es":"Asia","de":"Asien","ja":"アジア"},"code":"AS"}}
node name:city ,value:{"geoname_id":1799962,"names":{"en":"Nanjing","ru":"Нанкин","fr":"Nankin","pt-BR":"Nanquim","zh-CN":"南京","es":"Nankín","de":"Nanjing","ja":"南京市"}}
美化
full: {
"city": {
"geoname_id": 1799962,
"names": {
"en": "Nanjing",
"ru": "Нанкин",
"fr": "Nankin",
"pt-BR": "Nanquim",
"zh-CN": "南京",
"es": "Nankín",
"de": "Nanjing",
"ja": "南京市"
}
},
"subdivisions": [{
"geoname_id": 1806260,
"names": {
"en": "Jiangsu",
"fr": "Province de Jiangsu",
"zh-CN": "江苏省"
},
"iso_code": "32"
}
],
"country": {
"geoname_id": 1814991,
"names": {
"en": "China",
"ru": "Китай",
"fr": "Chine",
"pt-BR": "China",
"zh-CN": "中国",
"es": "China",
"de": "China",
"ja": "中国"
},
"iso_code": "CN"
},
"registered_country": {
"geoname_id": 1814991,
"names": {
"en": "China",
"ru": "Китай",
"fr": "Chine",
"pt-BR": "China",
"zh-CN": "中国",
"es": "China",
"de": "China",
"ja": "中国"
},
"iso_code": "CN"
},
"location": {
"time_zone": "Asia\/Shanghai",
"longitude": 118.7778,
"accuracy_radius": 50,
"latitude": 32.0617
},
"continent": {
"geoname_id": 6255147,
"names": {
"en": "Asia",
"ru": "Азия",
"fr": "Asie",
"pt-BR": "Ásia",
"zh-CN": "亚洲",
"es": "Asia",
"de": "Asien",
"ja": "アジア"
},
"code": "AS"
}
}
node name: city, value: {
"geoname_id": 1799962,
"names": {
"en": "Nanjing",
"ru": "Нанкин",
"fr": "Nankin",
"pt-BR": "Nanquim",
"zh-CN": "南京",
"es": "Nankín",
"de": "Nanjing",
"ja": "南京市"
}
}
参考
[GeoIP2 城市和国家 CSV 数据库][linkGeoip2CityAndCountryCsvDatabases]
[lilien1010/lua-resty-maxminddb][]
[maxmind/libmaxminddb#source#lookup_and_print][]
[maxmind/libmaxminddb#source#dump_entry_data_list][]
错误报告
请通过在我们的 GitHub 问题跟踪器中提交问题来报告错误,网址为 https://github.com/anjia0532/lua-resty-maxminddb/issues
如果错误是由 libmaxminddb 引起的,请在 https://github.com/maxmind/libmaxminddb/issues 中提交问题。
版权和许可
此模块根据 apache LICENSE-2.0 许可证授权。
版权所有 2017 年至今 anjia (anjia0532@gmail.com)
根据 Apache 许可证 2.0 版(“许可证”)授权;
除非符合许可证的规定,否则不得使用此文件。
您可以在以下网址获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或以书面形式达成协议,否则根据许可证分发的软件
按“原样”分发,
不提供任何明示或暗示的担保或条件。
请参阅许可证以了解管理权限和
许可证的限制。
[maxmind/libmaxminddb]: https://github.com/maxmind/libmaxminddb [openresty]: https://openresty.org.cn/en/installation.html [linkGeolite2FreeDownloadableDatabases]: http://dev.maxmind.com/geoip/geoip2/geolite2/ [maxmind/geoipupdate]: https://github.com/maxmind/geoipupdate [linkGeoip2CityAndCountryCsvDatabases]: https://dev.maxmind.com/geoip/geoip2/geoip2-city-country-csv-databases/ [maxmind/libmaxminddb#source#lookup_and_print]: https://github.com/maxmind/libmaxminddb/blob/master/bin/mmdblookup.c#L262 [maxmind/libmaxminddb#source#dump_entry_data_list]: https://github.com/maxmind/libmaxminddb/blob/master/src/maxminddb.c#L1938 [lilien1010/lua-resty-maxminddb]: https://github.com/lilien1010/lua-resty-maxminddb
作者
安佳(anjia0532@gmail.com)
许可证
2bsd
版本
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2022-04-13 12:57:34
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2020-08-17 01:23:26
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-12-21 03:36:06
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-12-11 08:50:33
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-12-06 01:09:34
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-11-02 06:07:52
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-11-02 06:03:20
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-07-12 01:28:06
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-07-03 09:42:35
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-05-30 02:02:35
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-05-22 03:07:53
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2018-05-22 02:18:57
-
用于读取 MaxMind 地理位置数据库的 Lua 库 2017-09-15 01:38:10