Beispiel #1
0
        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));
        }
Beispiel #2
0
    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;
    }
Beispiel #3
0
        /// <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);
        }