#域名 #DNS #解析器 #后缀 #公开 #查找 #列表

dns_name

使用公共后缀查找进行DNS名称解析

2个稳定版本

1.0.1 2024年1月10日
1.0.0 2023年2月24日

#1578 in 网络编程

Download history 41/week @ 2024-03-10 19/week @ 2024-03-17 12/week @ 2024-03-24 116/week @ 2024-03-31 60/week @ 2024-04-07 6/week @ 2024-04-14 16/week @ 2024-05-12 8/week @ 2024-05-19 48/week @ 2024-05-26 57/week @ 2024-06-02 48/week @ 2024-06-09 24/week @ 2024-06-16 64/week @ 2024-06-23

194 每月下载量

MIT许可证

45KB
437

dns_name

使用公共后缀列表进行鲁棒的域名解析

此库允许您轻松且准确地解析任何给定的域名。

let list = List::from_path("suffix-list.txt").unwrap();

let domain = list.parse_dns_name("www.example.com")?;
assert_eq!(domain.name(), "www.example.com");
assert_eq!(domain.rname(), "moc.elpmaxe.www");
assert_eq!(domain.root(), Some("example.com"));
assert_eq!(domain.suffix(), Some("com"));
assert_eq!(domain.registrable(), Some("example"));

// 2-level TLD
let domain = list.parse_dns_name("wWw.BlUeCaTnEtWoRkS.Uk.CoM.")?;
assert_eq!(domain.name(), "www.bluecatnetworks.uk.com.");
assert_eq!(domain.rname(), ".moc.ku.skrowtentaceulb.www");
assert_eq!(domain.root(), Some("bluecatnetworks.uk.com."));
assert_eq!(domain.suffix(), Some("uk.com."));
assert_eq!(domain.registrable(), Some("bluecatnetworks"));

// the root name
let domain = list.parse_dns_name(".")?;
assert_eq!(domain.name(), ".");
assert_eq!(domain.rname(), ".");
assert_eq!(domain.root(), None);
assert_eq!(domain.suffix(), None);
assert_eq!(domain.registrable(), None);

依赖项

~5.5MB
~125K SLoC