use std::{net::{IpAddr, ToSocketAddrs}};
pub struct ValAddr;
impl ValAddr {
pub fn is_domain(value: &str) -> bool {
if let Ok(mut addrs_iter) = format!("{}:0", value).to_socket_addrs() {
if addrs_iter.next().is_some() {
return true;
}
}
false
}
pub fn is_ip(value: &str) -> bool {
value.parse::<IpAddr>().is_ok()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn cmp_domain() {
assert_eq!(true, ValAddr::is_domain("example,com")); }
#[test]
fn cmp_ip() {
assert_eq!(true, ValAddr::is_ip("192.168.176.43"));
}
}