dns協議解析包 MyDnsPackage
介紹:
一個c#開發的dns協議解析包。可以生成查詢請求,接收返回的數據,并解析出結果。
應用場景:
如果只是想根據域名獲取ip地址,可以使用.net自帶的類“System.Net.Dns.GetHostByName(string UriHostName)” 簡單獲取。
但如果需要獲得其他域名相關信息,如MX記錄、SOA記錄、TXT記錄、CNAME記錄等,顯然就不那么容易了。
一般的做法是調用系統的api:“dnsapi",或者使用nslookup獲取信息然后重定向他的輸出記錄并分析。
以上兩類方法各有缺點,如使用api,比較麻煩;使用nslookup可能速度上不太如意,還要判斷很多信息。
鑒于以上問題,可以使用MyDnsPackage包來獲取相應信息。
使用方法:
MyDns mydns = new MyDns(); if (!mydns.Search("lixin.me", QueryType.A, "8.8.8.8", 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"); }
注:txtInfo 和 txtContent 是兩個 richTextBox
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!