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
每月 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