[−][src]Crate addr
Robust domain name parsing using the Public Suffix List
This library allows you to easily and accurately parse any given domain name.
Examples
extern crate addr; use addr::{DomainName, DnsName, Email}; // You can find out the root domain // or extension of any given domain name let domain: DomainName = "www.example.com".parse()?; assert_eq!(domain.root(), "example.com."); assert_eq!(domain.root().suffix(), "com."); let domain: DomainName = "www.食狮.中国".parse()?; assert_eq!(domain.root(), "食狮.中国."); assert_eq!(domain.root().suffix(), "中国."); let domain: DomainName = "www.xn--85x722f.xn--55qx5d.cn".parse()?; assert_eq!(domain.root(), "公司.cn."); assert_eq!(domain.root().suffix(), "cn."); let domain: DomainName = "a.b.example.uk.com".parse()?; assert_eq!(domain.root(), "example.uk.com."); assert_eq!(domain.root().suffix(), "uk.com."); let name: DnsName = "_tcp.example.com.".parse()?; assert_eq!(name.root(), "example.com."); assert_eq!(name.root().suffix(), "com."); let email: Email = "чебурашка@ящик-с-апельсинами.рф".parse()?; assert_eq!(email.user(), "чебурашка"); assert_eq!(email.host(), "ящик-с-апельсинами.рф."); // In any case if the domain's suffix is in the list // then this is definately a registrable domain name assert!(domain.root().suffix().is_known());
Re-exports
pub use errors::Result; |
pub use errors::Error; |
Modules
errors | Errors returned by this library |
Structs
DnsName | Holds information about a particular DNS name |
DomainName | |
Enums
Host | Holds information about a particular host |