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"); } }); }
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"); } }); }
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); }
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); }