default_net/interface/shared.rs
1use std::net::{IpAddr, UdpSocket};
2
3/// Get IP address of the default Network Interface
4pub fn get_local_ipaddr() -> Option<IpAddr> {
5 let socket = match UdpSocket::bind("0.0.0.0:0") {
6 Ok(s) => s,
7 Err(_) => return None,
8 };
9
10 match socket.connect("1.1.1.1:80") {
11 Ok(()) => (),
12 Err(_) => return None,
13 };
14
15 match socket.local_addr() {
16 Ok(addr) => return Some(addr.ip()),
17 Err(_) => return None,
18 };
19}