36个稳定版本
2.2.3 | 2022年10月8日 |
---|---|
2.1.1 | 2021年9月9日 |
2.1.0 | 2021年3月30日 |
1.5.6 | 2021年2月26日 |
0.0.2 | 2016年12月31日 |
#45 在 Web编程
596,576 每月下载量
用于 771 个Crate (12 个直接)
88KB
400 行
PublicSuffix
Mozilla的Public Suffix List的本地Rust库
此库使用Mozilla的Public Suffix List以可靠地确定域名后缀。此crate提供了一个可动态更新的列表。如果您需要一个更快但静态的列表,请改用psl crate。
注意:此crate的v1版本包含验证域名和电子邮件地址的逻辑。从v2版本开始,此功能已移动到addr crate。此crate也不再为您下载列表。
设置
将此crate添加到您的Cargo.toml
[dependencies]
publicsuffix = "2"
示例
use publicsuffix::{Psl, List};
// the official list can be found at
// https://publicsuffix.org/list/public_suffix_list.dat
let list: List = "<-- your public suffix list here -->".parse()?;
let suffix = list.suffix(b"www.example.com")?;
assert_eq!(suffix, "com");
assert_eq!(suffix.typ(), Some(Type::Icann));
let domain = list.domain(b"www.example.com")?;
assert_eq!(domain, "example.com");
assert_eq!(domain.suffix(), "com");
let domain = list.domain("www.食狮.中国".as_bytes())?;
assert_eq!(domain, "食狮.中国");
assert_eq!(domain.suffix(), "中国");
let domain = list.domain(b"www.xn--85x722f.xn--55qx5d.cn")?;
assert_eq!(domain, "xn--85x722f.xn--55qx5d.cn");
assert_eq!(domain.suffix(), "xn--55qx5d.cn");
let domain = list.domain(b"a.b.example.uk.com")?;
assert_eq!(domain, "example.uk.com");
assert_eq!(domain.suffix(), "uk.com");
let domain = list.domain(b"_tcp.example.com.")?;
assert_eq!(domain, "example.com.");
assert_eq!(domain.suffix(), "com.");
依赖关系
~12–530KB
~13K SLoC