From a66c94a1f836b56897a3b5151f93aaa327efc6bd Mon Sep 17 00:00:00 2001 From: Mustafa Salih <37256744+MustafaSalih1993@users.noreply.github.com> Date: Fri, 4 Jun 2021 22:14:02 +0300 Subject: Added local ip (#61) * added new block/local ip * added local ip block * added localip in config file * edited localip default to false --- src/utils/local_ip.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/utils/local_ip.rs (limited to 'src/utils/local_ip.rs') diff --git a/src/utils/local_ip.rs b/src/utils/local_ip.rs new file mode 100644 index 0000000..6df7016 --- /dev/null +++ b/src/utils/local_ip.rs @@ -0,0 +1,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) +} -- cgit v1.2.3