/// <summary> /// Determines whether a WHOIS record is a redirect record to another WHOIS server. /// </summary> /// <param name="record">The record.</param> /// <param name="redirect">The redirect.</param> /// <returns></returns> public bool IsARedirectRecord(WhoisRecord record, out WhoisRedirect redirect) { var isARedirectRecord = false; redirect = null; if (record.Text.Contains("many different competing registrars")) { var reader = new EmbeddedPatternReader(); var pattern = reader.Read(GetType().Assembly, "Whois.Patterns.Redirects.Iana.txt"); var tokenizer = new Tokenizer(); var text = record.Text; var tokenResult = tokenizer.Parse <WhoisRedirect>(pattern, text); redirect = tokenResult.Value; isARedirectRecord = true; } return(isARedirectRecord); }
/// <summary> /// Determines whether a WHOIS record is a redirect record to another WHOIS server. /// </summary> /// <param name="record">The record.</param> /// <param name="redirect">The redirect.</param> /// <returns></returns> public bool IsARedirectRecord(WhoisRecord record, out WhoisRedirect redirect) { var isARedirectRecord = false; redirect = null; if (record.Text.Contains("many different competing registrars")) { var reader = new EmbeddedPatternReader(); var pattern = reader.Read(GetType().Assembly, "Whois.Patterns.Redirects.Iana.txt"); var tokenizer = new Tokenizer(); var text = record.Text; var tokenResult = tokenizer.Parse<WhoisRedirect>(pattern, text); redirect = tokenResult.Value; isARedirectRecord = true; } return isARedirectRecord; }
/// <summary> /// Determines whether a WHOIS response is a redirect response to another WHOIS server. /// </summary> public bool IsARedirectRecord(WhoisResponse response, out WhoisRedirect redirect) { redirect = null; var pattern = Embedded.Patterns.Redirects.VerisignGrs; var tokenizer = new TokenMatcher(); tokenizer.AddPattern(pattern, "verisign-grs.com"); if (tokenizer.TryMatch <WhoisRedirect>(response.Content, out var match)) { Log.Debug("Found redirect for {0} to {1}", response.Domain, match.Result.Url); redirect = match.Result; if (string.IsNullOrEmpty(redirect.Url) == false) { return(true); } } return(false); }