4 个稳定版本
1.1.0 | 2021 年 7 月 9 日 |
---|---|
1.0.2 | 2021 年 7 月 8 日 |
#2 in #ipify
27 每月下载量
16KB
63 行
Rust ipify 库
ipify 的 Rust 客户端库
简介
Rust ipify 是 Rust 语言编写的一个 ipify 客户端库。
为什么选择 ipify?
是否曾需要以程序方式获取您的公网 IP 地址?也许您正在配置新的云服务器,需要知道您的 IP 地址;也许您位于企业防火墙后面,需要隧道信息;无论什么原因:有时拥有一个公网 IP 地址 API 都是有用的!
您应该使用 ipify,因为
-
您可以无限制地使用它(即使您每分钟进行数百万次请求)。
-
它与 IPv4 和 IPv6 地址都完美地协同工作,因此无论您使用什么技术,都不会有问题。
-
它始终在线且可用,其基础设施由 Heroku 提供支持,这意味着无论运行 API 的服务器是否崩溃,或者是否有巨大的龙卷风摧毁东海岸的一半,ipify 仍然会运行!
-
ipify 完全开源(查看 GitHub 仓库)。
-
绝不会记录任何访客信息。就这么简单。
-
最后,ipify 由 Randall Degges 赞助,因此您无需担心域名三年后消失等问题:ipify 会一直存在!
要求
该库需要 Rust 版本 >= 2018
如何编译
仓库包含 2 个文件夹。第一个文件夹 Rust_ipify_lib 包含库的源代码,第二个文件夹 Rust_ipify_lib_test 包含测试的源代码。
- 要编译库
cd Rust_ipify_lib
cargobuild
- 要编译测试
cd Rust_ipify_lib_test
cargobuild
如何运行
- 要运行测试
cd Rust_ipify_lib_test
cargorun
示例
示例位于 Rust_ipify_lib_test/src/
文件夹下。该文件包含使用库的 API 获取全局 IP 地址的示例。
extern crate rust_ipify;
use rust_ipify::ipify::get_ip_json;
use rust_ipify::ipify::get_ip_string;
use rust_ipify::ipify::get_ip4_json;
use rust_ipify::ipify::get_ip4_string;
use rust_ipify::ipify::get_ip4_i32;
use rust_ipify::ipify::get_ip_i128;
fn main() {
println!("inside main of test ");
let result_ip64_json = get_ip_json();
match result_ip64_json {
Ok(r) => println!("Result IP ( JSON ): \n{:#?}\n", r),
Err(e) => println!("error in request {:?}", e),
}
let result_ip64_string = get_ip_string();
match result_ip64_string {
Ok(r) => println!("Result IP ( String ): \n\t{:#?}\n", r),
Err(e) => println!("error in request {:?}", e),
}
let result_ip4_json = get_ip4_json();
match result_ip4_json {
Ok(r) => println!("Result IP v4 ( JSON ): \n{:#?}\n", r),
Err(e) => println!("error in request {:?}", e),
}
let result_ip4_string = get_ip4_string();
match result_ip4_string {
Ok(r) => println!("Result IP v4 ( String ): \n\t{:#?}\n", r),
Err(e) => println!("error in request {:?}", e),
}
let result_ip4_i32 = get_ip4_i32();
match result_ip4_i32 {
Ok(r) => println!("Result IP v4 ( i32 ): \n\t{:#?}\n", r),
Err(e) => println!("error in request {:?}", e),
}
let result_ip_i128 = get_ip_i128();
match result_ip_i128 {
Ok(r) => println!("Result IP ( i128 ): \n\t{:#?}\n", r),
Err(e) => println!("error in request {:?}", e),
}
如何贡献
如果您想更改代码、修复问题或实现新功能,请阅读我们的 CONTRIBUTING 指南。
网站
从Crates.io网站检查最新发布版本 这里
联系方式
电子邮件: [email protected]
支持
依赖项
~5–18MB
~269K SLoC