#geolocation #ip #maxmind #geo-ip #geo-ip2

maxminddb

用于读取 GeoIP2 和 GeoLite2 所使用的 MaxMind DB 格式的库

48 个版本

0.24.0 2024年1月10日
0.23.0 2022年4月3日
0.22.0 2022年3月23日
0.21.0 2021年7月20日
0.1.0 2014年11月22日

#21数据库接口

Download history 75001/week @ 2024-04-07 78567/week @ 2024-04-14 73952/week @ 2024-04-21 75404/week @ 2024-04-28 75442/week @ 2024-05-05 84218/week @ 2024-05-12 85643/week @ 2024-05-19 88156/week @ 2024-05-26 101699/week @ 2024-06-02 104895/week @ 2024-06-09 91634/week @ 2024-06-16 85437/week @ 2024-06-23 93611/week @ 2024-06-30 100751/week @ 2024-07-07 99484/week @ 2024-07-14 101313/week @ 2024-07-21

396,524 每月下载量
用于 30 个 Crates (28 直接)

ISC 许可证

60KB
1.5K SLoC

Rust MaxMind DB 读取器

crates.io Released API docs Master API docs

此库读取 MaxMind DB 格式,包括 GeoIP2 和 GeoLite2 数据库。

构建

构建所有内容

cargo build

测试

此 crate 在 git 子模块中管理其测试数据。要运行测试,您需要首先运行以下命令。

git submodule update --init

用法

将此添加到您的 Cargo.toml

[dependencies]
maxminddb = "0.17"

并将其添加到您的 crate 根目录

extern crate maxminddb;

API 文档

API 文档位于 GitHub Pages

示例

查看 examples/lookup.rs 中的基本示例。

基准测试

项目包括使用 Criterion.rs 的基准测试。

首先,您需要一个 GeoIP City 数据库的有效副本。您可以从 此处 获取它。

将其放置在根文件夹中,命名为 GeoIP2-City.mmdb

完成此操作后,运行

cargo bench

如果已安装 gnuplot,Criterion.rs 可以生成一个 HTML 报告,显示基准测试的结果,位于 target/criterion/report/index.html

100 次随机 IP 查询的结果

贡献

欢迎贡献!请 fork 仓库并提交您的更改的 pull request。

许可证

这是一款免费软件,许可协议为 ISC 许可证。

依赖项

~0.6–1.4MB
~29K SLoC