public void TestIsMatchResult_NormallySucceed()
 {
     dnsRequest.DomainName = "localhost";
     // 校验 dnsRequest 是否为空
     Assert.AreNotEqual(null, dnsRequest);
     // 校验解析是否成功
     dnsRequest.MakeRequest().Wait();
     Assert.IsNotNull(dnsRequest.ActualResult);
     Assert.AreEqual(true, dnsRequest.IsMatchResult("127.0.0.1", dnsRequest.ActualResult), "Cannot match the result ");
 }
Esempio n. 2
0
        /// <summary>
        /// 请求服务器状态
        /// </summary>
        /// <param name="serverProtocol"></param>
        /// <returns></returns>
        public async Task <LogModel> AccessDNSServer(SiteModel site, DNSRequest request)
        {
            // 作为返回参数的请求结果记录
            LogModel log = null;

            if (null != site.Site_address && !("".Equals(site.Site_address)))
            {
                // 检测并赋值DNS服务器IP
                IPAddress ip = await GetIPAddressAsync(site.Site_address);

                // ip 不合法
                if (null == ip)
                {
                    return(null);
                }
                request.DnsServer = ip;
                #region 初始化log
                log = new LogModel
                {
                    Site_id     = site.Id,
                    Create_time = DateTime.Now
                };
                #endregion
                // 获取存储的请求预处理信息
                JObject js = (JObject)JsonConvert.DeserializeObject(site.ProtocolIdentification);
                try
                {
                    // 赋值请求类型
                    request.RecordType = DNSRequest.GetQTypeWithIndex(int.Parse(js["recordType"].ToString()));
                }
                catch (Exception)
                {
                    request.RecordType = 0;//出错 默认选第一个
                }
                // 赋值用于测试的域名
                request.DomainName = js["lookup"].ToString();
                // 开始请求
                bool result = await request.MakeRequest();

                // 处理请求记录
                CreateLogWithRequestServerResult(log, request);
                // 补充额外添加的判断
                log.Log_record = request.RequestInfos;
                log.Is_error   = !request.IsMatchResult(request.ActualResult.First(),
                                                        new HashSet <string>()
                {
                    // 赋值保存的期待返回值
                    js["expectedResults"].ToString()
                });
                if (log.Is_error)
                {
                    log.Status_code = "1001";
                }
                // 更新站点信息
                UpdateSiteStatus(site, log);
            }
            return(log);
        }
Esempio n. 3
0
        /// <summary>
        /// 请求服务器状态
        /// </summary>
        /// <param name="serverProtocol"></param>
        /// <returns></returns>
        public async Task <LogModel> AccessDNSServer(SiteModel site, DNSRequest request)
        {
            // 作为返回参数的请求结果记录
            LogModel log = null;

            if (null != site.Site_address && !("".Equals(site.Site_address)))
            {
                // 检测并赋值DNS服务器IP
                IPAddress ip = await GetIPAddressAsync(site.Site_address);

                if (null == ip)
                {
                    try
                    {
                        // 获取请求站点的地址
                        ip = IPAddress.Parse(site.Site_address);
                    }
                    catch (ArgumentException e)
                    {
                        Debug.WriteLine(e.ToString());
                        DBHelper.InsertErrorLog(e);
                        return(null);
                    }
                }
                request.DnsServer = ip;
                #region 初始化log
                log = new LogModel
                {
                    Site_id     = site.Id,
                    Create_time = DateTime.Now
                };
                #endregion
                // 赋值请求站点预计的请求结果
                // 这里待定!!!!!因为保存用于测试的域名不知道存储在哪?
                request.DomainName = site.ProtocolIdentification;
                // 开始请求
                bool result = await request.MakeRequest();

                // 处理请求记录
                CreateLogWithRequestServerResult(log, request);
                // 补充额外添加的判断
                log.Log_record = request.RequestInfos;
                // 这里待定!!!!!因为用于保存期待结果的变量暂时不知道是如何存储的
                request.IsMatchResult(request.ActualResult.First(), new HashSet <string>()
                {
                    "127.0.0.1"
                });
                // 更新站点信息
                UpdateSiteStatus(site, log);
            }
            return(log);
        }