DNS 協議解析包 MyDnsPackage

fmms 13年前發布 | 11K 次閱讀 DNS

介紹:
一個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");
        }</pre> <em>注:txtInfo 和 txtContent 是兩個 richTextBox<br /> <br /> 項目地址:</em> <a href="/misc/goto?guid=4958200524490225051">http://mydnspackage.codeplex.com/</a></strong>  
 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!