public Task <LookupState> Visit(LookupState state) { if (state.Options.ParseWhoisResponse == false) { return(Task.FromResult(state)); } try { if (matcher.TryMatch <ParsedWhoisResponse>(state.Response.Content, out var match)) { Log.Debug("Parsed WHOIS data using pattern {0} - {1} replacement(s) made.", match.Template.Name, match.Matches); state.Response.ParsedResponse = match.Result; } else { Log.Debug("Unable to parse WHOIS data."); } } catch (Exception e) { Log.Error(e, "Error parsing WHOIS DATA for: {0}", state.Domain); if (state.Options.ThrowOnParsingException) { throw; } } return(Task.FromResult(state)); }
internal static ModuleStatementSyntax FromMatcher(TokenMatcher matcher) { List<SyntaxNodeOrToken> list; list = matcher.TryMatch(SyntaxKind.ModuleKeyword, SyntaxKind.IdentifierToken); //if (list != null) //{ // return Syntax.ModuleStatement(null, null, list[0].AsToken(), list[1].AsToken()); //} return null; }
/// <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); }