fork of https://github.com/shellrow/default-net/tree/v0.16.2
fixes an unsafe bug in sockaddr_to_network_addr
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
465 B
19 lines
465 B
use std::net::{IpAddr, UdpSocket};
|
|
|
|
/// Get IP address of the default Network Interface
|
|
pub fn get_local_ipaddr() -> Option<IpAddr> {
|
|
let socket = match UdpSocket::bind("0.0.0.0:0") {
|
|
Ok(s) => s,
|
|
Err(_) => return None,
|
|
};
|
|
|
|
match socket.connect("1.1.1.1:80") {
|
|
Ok(()) => (),
|
|
Err(_) => return None,
|
|
};
|
|
|
|
match socket.local_addr() {
|
|
Ok(addr) => return Some(addr.ip()),
|
|
Err(_) => return None,
|
|
};
|
|
}
|
|
|