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 次
27KB
208 行
geoip-rs
geoip-rs 是一个 geoip 服务:它提供关于调用方或指定IP地址的地理信息。它支持 IPV4 和 IPV6。
-
在未提供查询参数的情况下调用,它解析调用方的IP地址。例如: https://api.geoip.rs
-
当使用
ip
查询参数调用时,它解析指定的IP地址。例如: https://api.geoip.rs/?ip=216.58.205.132如果提供的IP地址无效,它将回退到调用方的IP地址。
-
当使用
callback
查询参数调用时,它返回一个JSONP响应,其中json被指定的回调包装。例如: https://api.geoip.rs/?ip=216.58.205.132&callback=my_function -
默认情况下,响应将使用英语。可以提供可选的
lang
查询参数:如果可用翻译,则返回的数据将使用该语言。当前列表包括:de
,en
,es
,fr
,ja
,pt-BR
,ru
,zh-CH
。例如: https://api.geoip.rs/?ip=216.58.205.132&lang=ja
示例响应
有效的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