Function local_ip_address::local_ip
source · pub fn local_ip() -> Result<IpAddr, Error>
Expand description
Retrieves the local IPv4 address of the machine in the local network from
the AF_INET
family.
A different approach is taken based on the operative system.
For linux based systems the Netlink socket communication is used to retrieve the local network interface.
For BSD-based systems the getifaddrs
approach is taken using libc
For Windows systems Win32’s IP Helper is used to gather the Local IP address
Examples found in repository?
examples/show_ip_and_ifs.rs (line 7)
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
fn main() {
match local_ip() {
Ok(ip) => println!("Local IPv4: {}", ip),
Err(err) => println!("Failed to get local IPv4: {}", err),
};
match local_ipv6() {
Ok(ip) => println!("Local IPv6: {}", ip),
Err(err) => println!("Failed to get local IPv6: {}", err),
};
// this is only supported on linux currently
#[cfg(target_os = "linux")]
match local_broadcast_ip() {
Ok(ip) => println!("Local broadcast IPv4: {}", ip),
Err(err) => println!("Failed to get local broadcast IPv4: {}", err),
};
match list_afinet_netifas() {
Ok(netifs) => {
println!("Got {} interfaces", netifs.len());
for netif in netifs {
println!("IF: {}, IP: {}", netif.0, netif.1);
}
}
Err(err) => println!("Failed to get list of network interfaces: {}", err),
};
}