my_internet_ip

Crates.iomy_internet_ip
lib.rsmy_internet_ip
version0.1.1
sourcesrc
created_at2018-03-01 22:02:07.998728
updated_at2018-10-03 09:18:02.519773
descriptionRetrieve the public IP of the machine your app runs on.
homepagehttps://gitlab.com/philippludwig/my-internet-ip
repositoryhttps://gitlab.com/philippludwig/my-internet-ip.git
max_upload_size
id53366
size6,093
Philipp Ludwig (philippludwig)

documentation

README

My Internet IP Rust Crate

"My Internet IP" is a small rust crate for retrieving the public IP of the device this code is executed on.

Changes in 0.1.1

The code contains no more unwrap, but the return type of get has been changed to the new enum MyIpError which wraps all errors which may occur during retrieving of the IP.

Example

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
}

Note: The call to my_internet_ip::get() blocks until the public IP was retrieved or an error occurred.

Cargo.toml

my_internet_ip = "0.1.1"

How it works

This crate uses the curl crate to access http://www.myip.ch and parse the result.

Ideas for contributions

  • Support async retrieval of the IP
  • Use other sites to retrieve the IP (maybe STUN server?) and select one randomly
  • Clear up the code (it is quite convoluted, but it works)

License

MIT

Commit count: 20

cargo fmt