private void bw_DoWork(object sender, DoWorkEventArgs e)
 {
     if (bw.CancellationPending)
     {
         return;
     }
     else
     {
         dt.Rows.Add("DNS记录", "记录类型", "解析结果", "TTL");
         MyDns mydns = new MyDns();
         if (!mydns.Search(_host, QueryType.A, _dnsname, null))
         {
             UMessageBox.Show("提示", mydns.header.RCODE.ToString());
             return;
         }
         foreach (MyDnsRecord item in mydns.record.Records)
         {
             dt.Rows.Add(item.Name, item.QType.ToString(), item.RDDate.ToString().Replace(" ", ""), item.TTL.ToString());
         }
         if (!mydns.Search(_host, QueryType.MX, _dnsname, null))
         {
             UMessageBox.Show("提示", mydns.header.RCODE.ToString());
             return;
         }
         foreach (MyDnsRecord item in mydns.record.Records)
         {
             dt.Rows.Add(item.Name, item.QType.ToString(), item.RDDate.ToString().Replace(" ", "").Replace('|', '\r'), item.TTL.ToString());
         }
         if (!mydns.Search(_host, QueryType.CNAME, _dnsname, null))
         {
             UMessageBox.Show("提示", mydns.header.RCODE.ToString());
             return;
         }
         foreach (MyDnsRecord item in mydns.record.Records)
         {
             dt.Rows.Add(item.Name, item.QType.ToString(), item.RDDate.ToString().Replace(" ", "").Replace('|', '\r'), item.TTL.ToString());
         }
         if (!mydns.Search(_host, QueryType.TXT, _dnsname, null))
         {
             UMessageBox.Show("提示", mydns.header.RCODE.ToString());
             return;
         }
         foreach (MyDnsRecord item in mydns.record.Records)
         {
             dt.Rows.Add(item.Name, item.QType.ToString(), item.RDDate.ToString().Replace(' ', '\r'), item.TTL.ToString());
         }
         bw.ReportProgress(100);
     }
 }
Пример #2
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            Type      myenum = typeof(QueryType);
            Array     ar     = Enum.GetValues(myenum);
            QueryType qtype  = (QueryType )ar.GetValue(cbType.SelectedIndex);
            MyDns     mydns  = new MyDns();

            if (!mydns.Search(txtDomain.Text.Trim(), qtype, txtDns.Text.Trim(), null))
            {
                MessageBox.Show(mydns.header.RCODE.ToString());
                return;
            }
            txtInfo.Clear();
            txtInfo.AppendText(string.Format("回复记录数:{0}\n", mydns.header.ANCOUNT));
            txtInfo.AppendText(string.Format("回复额外记录数:{0}\n", mydns.header.ARCOUNT));
            txtInfo.AppendText(string.Format("回复权威记录数:{0}", mydns.header.NSCOUNT));

            txtContent.Clear();
            foreach (MyDnsRecord item in mydns.record.Records)
            {
                txtContent.AppendText(item.QType.ToString() + "   " + item.RDDate.ToString() + "\n");
            }
        }