示例#1
0
 public static void DnsQueryRoute(IEndpointRouteBuilder endpoints)
 {
     endpoints.Map(Config.QueryPerfix, async context =>
     {
         var queryDictionary = context.Request.Query;
         if (context.Request.Method == "POST")
         {
             var dnsq = await DNSParser.FromPostByteAsync(context);
             await ReturnContext(context, true,
                                 DnsQuery(dnsq, context),
                                 transIdEnable: Config.TransIdEnable, id: dnsq.TransactionID);
         }
         else if (queryDictionary.ContainsKey("dns"))
         {
             var dnsq = DNSParser.FromWebBase64(context);
             await ReturnContext(context, true,
                                 DnsQuery(dnsq, context),
                                 transIdEnable: Config.TransIdEnable, id: dnsq.TransactionID);
         }
         else if (queryDictionary.ContainsKey("name"))
         {
             await ReturnContext(context, false,
                                 DnsQuery(DNSParser.FromDnsJson(context, EcsDefaultMask: Config.EcsDefaultMask), context),
                                 transIdEnable: Config.TransIdEnable);
         }
         else
         {
             await context.WriteResponseAsync(Startup.IndexStr, type: "text/html");
         }
     });
 }
示例#2
0
 public static void DnsQueryRoute(IEndpointRouteBuilder endpoints)
 {
     endpoints.Map(Config.QueryPerfix, async context =>
     {
         var queryDictionary = context.Request.Query;
         if (context.Request.Method == "POST")
         {
             await ReturnContext(context, true,
                                 DnsQuery(DnsMessage.Parse((await context.Request.BodyReader.ReadAsync()).Buffer.ToArray()),
                                          context));
         }
         else if (queryDictionary.ContainsKey("dns"))
         {
             await ReturnContext(context, true,
                                 DnsQuery(DNSParser.FromWebBase64(context),
                                          context));
         }
         else if (queryDictionary.ContainsKey("name"))
         {
             await ReturnContext(context, false,
                                 DnsQuery(DNSParser.FromQueryContext(context, EcsDefaultMask: Config.EcsDefaultMask),
                                          context));
         }
         else
         {
             await context.WriteResponseAsync(Startup.IndexStr, type: "text/html");
         }
     });
 }
示例#3
0
        public void RequestParseTest()
        {
            var pack     = "00040100000100000000000006676f6f676c6503636f6d0000010001";
            var actual   = DNSParser.ParseRequest(ParsePacket(pack));
            var expected = new Request(new Question[] { new Question("google.com.", RecordType.A) }, 4);

            Assert.AreEqual(actual, expected);
            Assert.AreEqual(actual.ID, 4);
        }
示例#4
0
        static void Main(string[] args)
        {
            DNSParser dns = new DNSParser();

            Period p  = dns.Parse("Срок проведения акции: с 19 декабря 2018 года по 8 января 2019 года");
            Period p1 = dns.Parse("Срок проведения акции: с 17 по 31 декабря 2018 года");

            Period p2 = new Period(null, DateTime.Today);

            Console.WriteLine(p2);
        }