#ip-address #info #org #api #caller #geo-info #geographical

seeip

Rust 对 IP Info https://seeip.org/ API 的封装

4 个稳定版本

新版本 3.0.1 2024年8月5日
3.0.0 2022年4月5日
2.0.0 2022年4月4日
1.0.0 2022年4月4日

#3 in #caller

Download history 1/week @ 2024-07-02 53/week @ 2024-07-30

每月 53 次下载
用于 ipfetch

自定义许可证

16KB
244

seeip

Rust 对 IP Info https://seeip.org/ API 的封装
查看使用此 seeip 库的示例项目: https://github.com/mark-ruddy/ipfetch

示例

以下所有示例都支持 IPv4 和 IPv6 地址。
要特定使用 IPv4 或 IPv6,请使用它们的 _v4()_v6() 等价函数。

获取调用者的 IP 地址

let my_ip = seeip::get_ip().unwrap();
println!("My IP: {}", my_ip);

获取调用者的地理位置信息

let my_geo_info = seeip::get_caller_geo().unwrap();
// Fields in GeoInfo can default out to empty values if not available from the API
println!("Country my IP matches: {}", my_geo_info.country);

获取 IP 地址的地理位置信息

let geo_info = seeip::get_geo("208.67.222.222").unwrap();
println!("Country matching this IP: {}", geo_info.country);

测试

测试涉及实际 API 调用。这意味着,如果您的宿主不支持 IPv6 而您进行 IPv6-only 调用,它们可能会失败。

如果您在支持 IPv4 和 IPv6 的宿主上: cargo test --verbose
对于只支持 IPv4 的宿主: cargo test --verbose -- --skip v6
对于只支持 IPv6 的宿主: cargo test --verbose -- --skip v4

依赖项

~4–18MB
~234K SLoC