コード例 #1
0
        internal static NetworkDnsResolver Parse(string json)
        {
            NetworkDnsResolver dnsResolver = new NetworkDnsResolver();

            try
            {
                var obj = JObject.Parse(json);

                dnsResolver.Status = (int.Parse(obj.Property("Status").Value.ToString()) == 0);
                dnsResolver.TC     = bool.Parse(obj.Property("TC").Value.ToString());
                dnsResolver.RD     = bool.Parse(obj.Property("RD").Value.ToString());
                dnsResolver.RA     = bool.Parse(obj.Property("RA").Value.ToString());
                dnsResolver.AD     = bool.Parse(obj.Property("AD").Value.ToString());
                dnsResolver.CD     = bool.Parse(obj.Property("CD").Value.ToString());

                foreach (var item in obj.Property("Question").Children())
                {
                    var name = item.First?.Value <string>("name").ToString();
                    var type = int.Parse(item.First?.Value <string>("type").ToString());

                    dnsResolver.Questions.Add(new DnsResolverQuestion()
                    {
                        Name = name,
                        Type = type
                    });
                }

                foreach (var item in obj.Property("Answer").Children())
                {
                    var name = item.First?.Value <string>("name").ToString();
                    var type = int.Parse(item.First?.Value <int>("type").ToString());
                    var ttl  = int.Parse(item.First?.Value <int>("ttl").ToString());
                    var data = item.First?.Value <string>("data").ToString();

                    dnsResolver.Answers.Add(new DnsResolverAnswer()
                    {
                        Name = name,
                        Type = type,
                        TTL  = ttl,
                        Data = data,
                    });
                }
            }
            catch (Exception ex)
            {
                dnsResolver.Message    = ex?.Message;
                dnsResolver.StackTrace = ex?.StackTrace;
            }

            return(dnsResolver);
        }
コード例 #2
0
        public async Task <NetworkDnsResolver> DnsResolver(string target)
        {
            NetworkDnsResolver resolver = new NetworkDnsResolver();

            try
            {
                resolver = await this._pingReplyService.ExecuteDnsResolver(target);
            }
            catch (Exception ex)
            {
                resolver.Message    = ex.Message;
                resolver.StackTrace = ex.StackTrace;
            }

            return(resolver);
        }
コード例 #3
0
        public void Test_NetworkService_ExecuteDnsResolver()
        {
            // Using google information
            string targetHost = "google.com";

            PingReplyService service = new PingReplyService(this.MockAppSettings.Object);

            NetworkDnsResolver resolver = Task.Run(async() =>
            {
                return(await service.ExecuteDnsResolver(targetHost));
            })
                                          .GetAwaiter()
                                          .GetResult();

            Assert.IsNotNull(resolver);
            //Assert.IsFalse(string.IsNullOrEmpty(resolver.TC));
            Assert.IsTrue(string.IsNullOrEmpty(resolver.Message));
            Assert.IsTrue(string.IsNullOrEmpty(resolver.StackTrace));

            this.VerifyAndTearDown();
        }