15个版本
0.3.6 | 2023年11月9日 |
---|---|
0.3.5 | 2021年3月27日 |
0.3.3 | 2021年2月24日 |
0.3.0 | 2021年1月21日 |
0.2.6 | 2020年11月25日 |
#971 in 网络编程
每月 767次下载
在 5 个crate 中使用
26KB
447 行
ipgeolocate
免费获取IP地址地理位置信息。
ipgeolocate = "0.3.5"
将以下内容添加到 Cargo.toml
。
示例
由于 ipgeolocate
是一个异步库,您需要异步运行时,如 tokio
或 async-std
才能运行。
使用 ipgeolocate
非常简单
use ipgeolocate::{Locator, Service};
// Prints the city where 1.1.1.1 is.
#[tokio::main]
async fn main() {
let service = Service::IpApi;
let ip = "1.1.1.1";
match Locator::get(ip, service).await {
Ok(ip) => println!("{} - {} ({})", ip.ip, ip.city, ip.country),
Err(error) => println!("Error: {}", error),
};
}
更多示例可以在示例目录中找到。
查询限制
本库中包含的每个服务都有每周、每小时或每月的限制。有些服务有更多的免费查询,但可靠性较低。
以下是查询限制
服务 | 限制 |
---|---|
ipwhois.app | 每月10,000次 |
freegeoip.app | 每小时15,000次 |
ip-api.com | 每分钟45次 |
ipapi.co | 每天1,000次 (每月30,000次) |
您可以通过运行同名函数来使用这些服务中的每一个。
不推荐使用 freegeoip.app,因为它在可靠获取IP地址的正确经纬度方面存在问题。
字段
API可以获取关于IP地址的以下字段。
- ip
- 纬度
- 经度
- 城市
- 地区
- 国家
- 时区
致谢
Grant Handy [email protected]
包含的API
用爱写成,使用Rust。
依赖
~5–16MB
~231K SLoC