5 releases
Uses old Rust 2015
0.1.1 | Oct 3, 2018 |
---|---|
0.1.0 | Oct 3, 2018 |
0.0.3 | Mar 1, 2018 |
0.0.2 | Mar 1, 2018 |
0.0.1 | Mar 1, 2018 |
#11 in #occurs
31 downloads per month
Used in wyr
5KB
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
Dependencies
~8–16MB
~230K SLoC