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
use std::net::Ipv6Addr;
use std::str;
use std::str::FromStr;
mod helper;
pub fn find_addr(ipaddr: &str) -> &'static str {
if let Ok(ip6) = Ipv6Addr::from_str(ipaddr) {
let ip_bytes = ip6.octets();
let ip = u64::from_be_bytes(helper::to_array(&ip_bytes[0..8]));
let i = helper::find(ip, 0, helper::IPV6_DATA.index_count);
let o = helper::IPV6_DATA.first_index + i * (8 + helper::IPV6_DATA.offlen);
let o2 = helper::get_int(o + 8, helper::IPV6_DATA.offlen);
return helper::get_addr(o2)[0];
}
""
}
pub fn find_addr_vec(addr: &str) -> [String; 4] {
helper::split(find_addr(addr))
}