Cleaned up whois library and started AU support
This commit is contained in:
parent
6aeaa04fce
commit
99d4a210f9
79
src/whois.rs
79
src/whois.rs
@ -65,12 +65,19 @@ impl Registrant {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct Eligibility {
|
||||||
|
e_type: String,
|
||||||
|
id: String,
|
||||||
|
name: String,
|
||||||
|
}
|
||||||
|
|
||||||
pub struct WhoisData {
|
pub struct WhoisData {
|
||||||
registrar: String,
|
registrar: String,
|
||||||
domain_status: String,
|
domain_status: String,
|
||||||
registrant: Vec<Registrant>,
|
registrant: Vec<Registrant>,
|
||||||
nameservers: Vec<NameServer>,
|
nameservers: Vec<NameServer>,
|
||||||
dnssec: String,
|
dnssec: String,
|
||||||
|
eligibility_type: Option<Eligibility>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for WhoisData {
|
impl fmt::Display for WhoisData {
|
||||||
@ -98,63 +105,15 @@ impl WhoisData {
|
|||||||
let registrant_org_regex =
|
let registrant_org_regex =
|
||||||
RegexQuery::new(String::from(r"(?i)(registrant org.*:|registrant:)(.*)"));
|
RegexQuery::new(String::from(r"(?i)(registrant org.*:|registrant:)(.*)"));
|
||||||
let registrant_email_regex = RegexQuery::new(String::from(r"(?i)(registrant email:)(.*)"));
|
let registrant_email_regex = RegexQuery::new(String::from(r"(?i)(registrant email:)(.*)"));
|
||||||
|
|
||||||
let nameserver_regex =
|
let nameserver_regex =
|
||||||
RegexQuery::new(String::from(r"(?i)(nameservers*:|name servers*:)(.*)"));
|
RegexQuery::new(String::from(r"(?i)(nameservers*:|name servers*:)(.*)"));
|
||||||
let dnssec_regex = RegexQuery::new(String::from(r"(?i)(.*dnssec:)(.*)"));
|
let dnssec_regex = RegexQuery::new(String::from(r"(?i)(.*dnssec:)(.*)"));
|
||||||
|
|
||||||
let registrar_caps = registrar_regex.get_matches(&result);
|
let registrar = WhoisData::parse_whois(registrar_regex.get_matches(&result), 0);
|
||||||
let registrar: String;
|
let domain_status = WhoisData::parse_whois(domain_status_regex.get_matches(&result), 0);
|
||||||
match registrar_caps.get(0) {
|
let reg_name = WhoisData::parse_whois(registrant_name_regex.get_matches(&result), 0);
|
||||||
Some(reg) => {
|
let reg_org = WhoisData::parse_whois(registrant_org_regex.get_matches(&result), 0);
|
||||||
registrar = reg.to_string();
|
let reg_email = WhoisData::parse_whois(registrant_email_regex.get_matches(&result), 0);
|
||||||
}
|
|
||||||
None => {
|
|
||||||
registrar = String::from("None");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let domain_status_caps = domain_status_regex.get_matches(&result);
|
|
||||||
let domain_status: String;
|
|
||||||
match domain_status_caps.get(0) {
|
|
||||||
Some(status) => {
|
|
||||||
domain_status = status.to_string();
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
domain_status = String::from("None");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let reg_name_caps = registrant_name_regex.get_matches(&result);
|
|
||||||
let reg_name: String;
|
|
||||||
match reg_name_caps.get(0) {
|
|
||||||
Some(name) => {
|
|
||||||
reg_name = name.to_string();
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
reg_name = String::from("None");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let reg_org_caps = registrant_org_regex.get_matches(&result);
|
|
||||||
let reg_org: String;
|
|
||||||
match reg_org_caps.get(0) {
|
|
||||||
Some(org) => {
|
|
||||||
reg_org = org.to_string();
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
reg_org = String::from("None");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let reg_email_caps = registrant_email_regex.get_matches(&result);
|
|
||||||
let reg_email: String;
|
|
||||||
match reg_email_caps.get(0) {
|
|
||||||
Some(email) => {
|
|
||||||
reg_email = email.to_string();
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
reg_email = String::from("None");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut nameservers = vec![];
|
let mut nameservers = vec![];
|
||||||
for nameserver in nameserver_regex.get_matches(&result) {
|
for nameserver in nameserver_regex.get_matches(&result) {
|
||||||
@ -174,6 +133,20 @@ impl WhoisData {
|
|||||||
)],
|
)],
|
||||||
nameservers: nameservers,
|
nameservers: nameservers,
|
||||||
dnssec: dnssec[0].clone(),
|
dnssec: dnssec[0].clone(),
|
||||||
|
eligibility_type: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn parse_whois(caps: Vec<String>, index: usize) -> String {
|
||||||
|
let data: String;
|
||||||
|
match caps.get(index) {
|
||||||
|
Some(tmp) => {
|
||||||
|
data = tmp.to_string();
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
data = String::from("None");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user