1 个不稳定版本
0.1.0 | 2024年4月30日 |
---|
#22 in #ipv4
19KB
229 代码行
博贡
博贡是一个 Rust 库,用于检查 IP 地址是否被认为是“虚假”或“博贡”,这意味着它在公共互联网上不可用。这包括私有 IP 地址、环回地址和其他保留地址。
功能
- 支持 IPv4 和 IPv6 地址。
- 包含使用扩展特性检查虚假 IP 地址的方法。
- 努力实现尽可能快。编译器为 IPv4 和 IPv6 地址检查生成 SIMD 指令。
- IPv6 范围在构建时从 IANA 保留地址注册表 中生成。
示例
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
use bogon::is_bogon_str;
assert_eq!(bogon::is_bogon_str("127.0.0.1"), Ok(true));
assert_eq!(bogon::is_bogon_str("8.8.8.8"), Ok(false));
assert_eq!(bogon::is_bogon_str("::1"), Ok(true));
assert!(bogon::is_bogon_str("foo").is_err());
assert_eq!(bogon::is_bogon_v4(Ipv4Addr::new(127, 0, 0, 1)), true);
assert_eq!(bogon::is_bogon_v4(Ipv4Addr::new(8, 8, 8, 8)), false);
assert_eq!(bogon::is_bogon_v6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), true);
assert_eq!(bogon::is_bogon(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1))), true);
assert_eq!(bogon::is_bogon(IpAddr::V4(Ipv4Addr::new(8, 8, 8, 8))), false);
assert_eq!(bogon::is_bogon(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1))), true);
依赖项
~0.5–1.2MB
~26K SLoC