8 个版本
0.6.2 | 2023年8月2日 |
---|---|
0.6.1 | 2022年10月23日 |
0.6.0 | 2022年5月13日 |
0.5.2 | 2022年4月28日 |
0.3.1 | 2021年11月7日 |
#2087 in 命令行工具
23KB
193 行
ipify-rs
Rust API & CLI 用于访问 ipify.org HTTP API
在 MIT 许可下。
关于
这是我尝试为 IPIFY API(即 ipify.org)编写 API & CLI 客户端的尝试。在查看所有其他 crate 后,它们都有一些缺陷(只有 IPv4,不真正符合 cargo 规范等)。
支持的平台
- Unix(已在 FreeBSD、Linux 和 macOS 上测试)
- Windows
- cmd.exe
- Powershell
API 使用
您首先使用 new()
创建 Ipify
的实例,设置您想要的结果(IPv4、IPv6)和其格式(纯文本、JSON)。结果是一个字符串。
use ipify_rs::{Ipify,Op};
let ip = Ipify::new().set(Op::IPv4).call();
println!("My IP is {}", ip);
以下指定了四种操作
操作::IPv4
OP::IPv6
(默认值)OP::IPv4J
(JSON 输出)Op::IPv6J
(JSON 输出)
简洁的 API
如果您只关心默认值(纯文本、IPv6 查询)并且不想以后重用任何内容,那么 myip()
就是您想要的
use ipify_rs::myip;
fn main() {
println!("{}", myip());
}
CLI 工具
API 中包含了一个名为 ipify-cli
的 CLI 工具。
ipify-cli 0.4.0
Ollivier Robert <roberto@keltia.net>
Rust CLI for IPIFY API.
USAGE:
ipify-cli.exe [OPTIONS]
OPTIONS:
-4, --ipv4 Force getting IPv4
-6, --ipv6 Force getting IPv6
-h, --help Print help information
-J, --json Request JSON output
-q, --quiet Quiet mode
-V, --version Display version and exit
您可以看到 API 和 CLI 版本
$ ipify-cli -V
CLI ipify-cli/0.4.0 using API ipify-rs/0.5.0
示例
在 examples
目录中的 showall.rs
文件显示了 API 几乎所有的参数。您可以使用以下命令运行它:
$ cargo run --example showall
...
INFO - Start
INFO - Using default, minimal API
IP=aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh
INFO - Using defaults (ipv6)
IP=aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh
INFO - Using defaults, get json
IP={"ip":"aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh"}
IP4="A.B.C.D"
IP6="aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh"
crates.io
您可以通过将以下内容添加到您的 Cargo.toml
来在项目中使用此包
[dependencies]
ipify-rs = "0.5.0"
然后您可以在自己的 crates 中使用它。
文档
API 的完整描述和示例在 docs.rs 上,与往常一样:[Ipify](https://docs.rs/ipify-rs)。
贡献
请参阅 CONTRIBUTING.md 以获取一些简单规则。
我为这个包使用 Git Flow,因此请使用类似的工作流程或常见的 GitHub 工作流程。
- 进行分叉(https://github.com/keltia/dmarc-rs/fork)
- 检出 develop 分支(
git checkout develop
) - 创建您的功能分支(
git checkout -b my-new-feature
) - 提交您的更改(
git commit -am 'Add some feature'
) - 推送到分支(
git push origin my-new-feature
) - 创建一个新的 Pull Request
依赖项
~11–25MB
~407K SLoC