ipv6 address added
This commit is contained in:
parent
3805929479
commit
322b3c0624
@ -3,15 +3,25 @@ use crate::types::ThreadsData;
|
|||||||
|
|
||||||
pub async fn get_local_ip() -> ThreadsData {
|
pub async fn get_local_ip() -> ThreadsData {
|
||||||
let addrs = nix::ifaddrs::getifaddrs().unwrap();
|
let addrs = nix::ifaddrs::getifaddrs().unwrap();
|
||||||
let mut ip = String::new();
|
let mut ip = String::new();
|
||||||
|
let mut ip6 = String::new();
|
||||||
|
let mut found4 = false;
|
||||||
|
let mut found6 = false;
|
||||||
for ifaddr in addrs {
|
for ifaddr in addrs {
|
||||||
match ifaddr.address {
|
match ifaddr.address {
|
||||||
Some(address) => {
|
Some(address) => {
|
||||||
|
if found4 && found6 { break; }
|
||||||
if ifaddr.interface_name == CONFIG.local_ip.interface {
|
if ifaddr.interface_name == CONFIG.local_ip.interface {
|
||||||
match address.family() {
|
match address.family() {
|
||||||
nix::sys::socket::AddressFamily::Inet => {
|
nix::sys::socket::AddressFamily::Inet => {
|
||||||
|
if found4 { continue; }
|
||||||
ip = address.to_string().split(':').next().unwrap().to_string();
|
ip = address.to_string().split(':').next().unwrap().to_string();
|
||||||
break;
|
found4 = true;
|
||||||
|
}
|
||||||
|
nix::sys::socket::AddressFamily::Inet6 => {
|
||||||
|
if found6 { continue; }
|
||||||
|
ip6 = address.to_string().rsplit_once(':').unwrap().0.to_string();
|
||||||
|
found6 = true;
|
||||||
}
|
}
|
||||||
_ => continue,
|
_ => continue,
|
||||||
};
|
};
|
||||||
@ -23,6 +33,9 @@ pub async fn get_local_ip() -> ThreadsData {
|
|||||||
if ip.is_empty() {
|
if ip.is_empty() {
|
||||||
ip = String::from("Error!")
|
ip = String::from("Error!")
|
||||||
}
|
}
|
||||||
let data = format!(" {} {} {}", CONFIG.local_ip.icon, ip, CONFIG.seperator);
|
if !ip6.is_empty() {
|
||||||
|
ip6 = format!(" {}", ip6)
|
||||||
|
}
|
||||||
|
let data = format!(" {} {}{} {}", CONFIG.local_ip.icon, ip, ip6, CONFIG.seperator);
|
||||||
ThreadsData::LocalIp(data)
|
ThreadsData::LocalIp(data)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user