aboutsummaryrefslogtreecommitdiff
path: root/src/utils/local_ip.rs
diff options
context:
space:
mode:
authorMustafa Salih <37256744+MustafaSalih1993@users.noreply.github.com>2021-06-04 22:14:02 +0300
committerGitHub <noreply@github.com>2021-06-04 22:14:02 +0300
commita66c94a1f836b56897a3b5151f93aaa327efc6bd (patch)
tree2aba52ed10c1288f6d837c18a2e3d58101a912f6 /src/utils/local_ip.rs
parentedea2fcb3db9243c6dedead90cd9dfd715c89a90 (diff)
Added local ip (#61)
* added new block/local ip * added local ip block * added localip in config file * edited localip default to false
Diffstat (limited to 'src/utils/local_ip.rs')
-rw-r--r--src/utils/local_ip.rs28
1 files changed, 28 insertions, 0 deletions
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)
+}