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 网络编程

Download history 74/week @ 2024-04-08 83/week @ 2024-04-15 77/week @ 2024-04-22 59/week @ 2024-04-29 70/week @ 2024-05-06 65/week @ 2024-05-13 99/week @ 2024-05-20 232/week @ 2024-05-27 194/week @ 2024-06-03 228/week @ 2024-06-10 124/week @ 2024-06-17 76/week @ 2024-06-24 164/week @ 2024-07-01 86/week @ 2024-07-08 165/week @ 2024-07-15 344/week @ 2024-07-22

每月 767次下载
5 个crate 中使用

GPL-3.0 许可证

26KB
447

ipgeolocate

Crates.io API Crates.io

免费获取IP地址地理位置信息。

ipgeolocate = "0.3.5"

将以下内容添加到 Cargo.toml

示例

由于 ipgeolocate 是一个异步库,您需要异步运行时,如 tokioasync-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