#ip #internet #public-ip #retrieve #occurs #retrieving #devices

my_internet_ip

通过该方式获取运行应用程序的机器的公网IP地址

5个版本

使用旧的Rust 2015

0.1.1 2018年10月3日
0.1.0 2018年10月3日
0.0.3 2018年3月1日
0.0.2 2018年3月1日
0.0.1 2018年3月1日

#retrieving中排名第9

Download history 22/week @ 2024-03-11 23/week @ 2024-03-18 4/week @ 2024-03-25 31/week @ 2024-04-01 11/week @ 2024-04-08 17/week @ 2024-04-15 19/week @ 2024-04-22 14/week @ 2024-04-29 8/week @ 2024-05-06 20/week @ 2024-05-13 17/week @ 2024-05-20 13/week @ 2024-05-27 16/week @ 2024-06-03 8/week @ 2024-06-10 17/week @ 2024-06-17 13/week @ 2024-06-24

每月下载56
wyr中使用

MIT许可证

5KB

我的网络IP Rust库

"我的网络IP"是一个用于获取执行此代码的设备的公网IP地址的小型Rust库。

0.1.1版本更改

代码中不再包含unwrap,但get的返回类型已更改为新的枚举类型MyIpError,该枚举类型封装了在获取IP地址过程中可能发生的所有错误。

示例

extern crate my_internet_ip;

fn main() {
	let ip: ::std::net::IpAddr = match my_internet_ip::get() {
		Ok(ip) => ip,
		Err(e) => panic!("Could not get IP: {}", e)
	};

	// Do something with the IP, e.g. print it
}

注意:调用my_internet_ip::get()会阻塞,直到检索到公网IP地址或发生错误。

Cargo.toml

my_internet_ip = "0.1.1"

工作原理

此库使用curl库访问http://www.myip.ch并解析结果。

贡献想法

  • 支持异步检索IP
  • 使用其他网站来检索IP(可能是STUN服务器?)并随机选择一个
  • 清理代码(代码相当复杂,但可以工作)

许可证

MIT

依赖项

~7-15MB
~207K SLoC