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