use ipzone::prelude::*; use std::env; #[test] fn ipv4_array() { let ip = ip::from([186, 23, 123, 1]).with([80, 443]); assert_eq!( ip.to_socket_addrs().unwrap().collect::>(), vec![ SocketAddr::new(Ipv4::new(186, 23, 123, 1).into(), 80), SocketAddr::new(Ipv4::new(186, 23, 123, 1).into(), 443), ] ); } #[test] fn ipv6_array() { let ip = ip::from([186, 23, 123, 1, 0, 0, 0, 0]).with([80, 443]); assert_eq!( ip.to_socket_addrs().unwrap().collect::>(), vec![ SocketAddr::new(Ipv6::new(186, 23, 123, 1, 0, 0, 0, 0).into(), 80), SocketAddr::new(Ipv6::new(186, 23, 123, 1, 0, 0, 0, 0).into(), 443), ] ); } #[test] fn ipv4_u32() { let ip = ip::from(0x0a000001u32.to_be_bytes()).with([80, 443]); assert_eq!( ip.to_socket_addrs().unwrap().collect::>(), vec![ SocketAddr::new(Ipv4::new(10, 0, 0, 1).into(), 80), SocketAddr::new(Ipv4::new(10, 0, 0, 1).into(), 443), ] ); } #[test] fn ipv6_u128() { let ip = ip::from(0x00000000000000000000ffffaabbccddu128.to_be_bytes()).with([80, 443]); assert_eq!( ip.to_socket_addrs().unwrap().collect::>(), vec![ SocketAddr::new(Ipv6::new(0, 0, 0, 0, 0, 0xffff, 0xaabb, 0xccdd).into(), 80), SocketAddr::new(Ipv6::new(0, 0, 0, 0, 0, 0xffff, 0xaabb, 0xccdd).into(), 443), ] ); } #[test] fn ipv4_str() { let ip = ip::from_str("164.23.1.2").unwrap().with([80, 443]); assert_eq!( ip.to_socket_addrs().unwrap().collect::>(), vec![ SocketAddr::new(Ipv4::new(164, 23, 1, 2).into(), 80), SocketAddr::new(Ipv4::new(164, 23, 1, 2).into(), 443), ] ); } #[test] fn ipv6_str() { let ip = ip::from_str("::ffff:aabb:ccdd").unwrap().with([80, 443]); assert_eq!( ip.to_socket_addrs().unwrap().collect::>(), vec![ SocketAddr::new(Ipv6::new(0, 0, 0, 0, 0, 0xffff, 0xaabb, 0xccdd).into(), 80), SocketAddr::new(Ipv6::new(0, 0, 0, 0, 0, 0xffff, 0xaabb, 0xccdd).into(), 443), ] ); } #[test] fn ipv4_env() { env::set_var("IP", "127.0.0.1"); let ip = ip::from_env("IP").unwrap().with([80, 443]); assert_eq!( ip.to_socket_addrs().unwrap().collect::>(), vec![ SocketAddr::new(Ipv4::new(127, 0, 0, 1).into(), 80), SocketAddr::new(Ipv4::new(127, 0, 0, 1).into(), 443), ] ); } #[test] fn ipv6_env() { env::set_var("IP", "::ffff:aabb:ccdd"); let ip = ip::from_env("IP").unwrap().with([80, 443]); assert_eq!( ip.to_socket_addrs().unwrap().collect::>(), vec![ SocketAddr::new(Ipv6::new(0, 0, 0, 0, 0, 0xffff, 0xaabb, 0xccdd).into(), 80), SocketAddr::new(Ipv6::new(0, 0, 0, 0, 0, 0xffff, 0xaabb, 0xccdd).into(), 443), ] ); }