#geo-ip #geolocation #maxmind #gis

应用 geoip-rs

geoip-rs提供关于调用方或指定IP地址的地理信息

11个不稳定版本

0.6.1 2020年6月15日
0.6.0 2020年1月2日
0.5.3 2019年9月3日
0.5.2 2019年7月9日
0.4.0 2019年2月19日

地理空间 中排名 158

每月下载量 32

Apache-2.0

27KB
208

geoip-rs

Latest version Build Status

geoip-rs 是一个 geoip 服务:它提供关于调用方或指定IP地址的地理信息。它支持 IPV4 和 IPV6。

示例响应

有效的IP地址

{
  "ip_address": "46.51.179.90",
  "latitude": 53.3331,
  "longitude": -6.2489,
  "postal_code": "D02",
  "continent_code": "EU",
  "continent_name": "Europe",
  "country_code": "IE",
  "country_name": "Ireland",
  "region_code": "L",
  "region_name": "Leinster",
  "province_code": "",
  "province_name": "",
  "city_name": "Dublin",
  "timezone": "Europe/Dublin"
}

找不到(私有)IP地址

{
  "ip_address": "127.0.0.1"
}

速度

在8核Intel i7上,geoip.rs可以每秒处理约30K个请求。

数据集

geoip-rs 使用由 maxmind 提供的免费数据集。它不是捆绑的:您必须单独下载它。

此处 下载 "GeoLite2 City" 数据集的二进制格式并解压缩。

运行

使用以下命令安装 geoip.rs

cargo install geoip-rs

如果您没有 cargo,请使用以下命令安装

curl https://sh.rustup.rs -sSf | sh

阅读教程 以获取更多说明。

您可以在命令行上指定数据集位置

geoip-rs /path/to/GeoLite2-City.mmdb

或通过环境变量

export GEOIP_RS_DB_PATH=/path/to/GeoLite2-City.mmdb
geoip-rs

或者通过 .env

cp .env.template .env
#edit .env appropriately
geoip-rs

您还可以自定义 geoip.rs 将要监听的宿主和端口

export GEOIP_RS_DB_PATH=/path/to/GeoLite2-City.mmdb
export GEOIP_RS_HOST=192.168.0.1
export GEOIP_RS_PORT=8080
geoip-rs

或者您可以将 .env.template 复制到 .env 并自定义其内容

许可证

本项目受 Apache License 2.0 许可证授权

依赖项

约 28MB
约 586K SLoC