blob: 6df7016ec1fb047700af7e635c49ce58935b81be (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
use crate::config::CONFIG;
use crate::types::ThreadsData;
pub async fn get_local_ip() -> ThreadsData {
let addrs = nix::ifaddrs::getifaddrs().unwrap();
let mut ip = String::new();
for ifaddr in addrs {
match ifaddr.address {
Some(address) => {
if ifaddr.interface_name == CONFIG.local_ip.interface {
match address.family() {
nix::sys::socket::AddressFamily::Inet => {
ip = address.to_string().split(':').next().unwrap().to_string();
break;
}
_ => continue,
};
}
}
None => continue,
}
}
if ip.is_empty() {
ip = String::from("Error!")
}
let data = format!(" {} {} {}", CONFIG.local_ip.icon, ip, CONFIG.seperator);
ThreadsData::LocalIp(data)
}
|