MyDnsPackagedns協(xié)議解析包
介紹:
一個(gè)c#開發(fā)的dns協(xié)議解析包。可以生成查詢請(qǐng)求,接收返回的數(shù)據(jù),并解析出結(jié)果。
應(yīng)用場(chǎng)景:
如果只是想根據(jù)域名獲取ip地址,可以使用.net自帶的類“System.Net.Dns.GetHostByName(string UriHostName)” 簡(jiǎn)單獲取。
但如果需要獲得其他域名相關(guān)信息,如MX記錄、SOA記錄、TXT記錄、CNAME記錄等,顯然就不那么容易了。
一般的做法是調(diào)用系統(tǒng)的api:“dnsapi",或者使用nslookup獲取信息然后重定向他的輸出記錄并分析。
以上兩類方法各有缺點(diǎn),如使用api,比較麻煩;使用nslookup可能速度上不太如意,還要判斷很多信息。
鑒于以上問題,可以使用MyDnsPackage包來獲取相應(yīng)信息。
使用方法:
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 ("回復(fù)記錄數(shù):{0}\n",mydns.header.ANCOUNT) ); txtInfo.AppendText(string.Format("回復(fù)額外記錄數(shù):{0}\n", mydns.header.ARCOUNT )); txtInfo.AppendText(string.Format("回復(fù)權(quán)威記錄數(shù):{0}", mydns.header.NSCOUNT )); txtContent.Clear(); foreach (MyDnsRecord item in mydns.record.Records) { txtContent.AppendText(item.QType.ToString() + " " + item.RDDate.ToString()+"\n"); }
注:txtInfo 和 txtContent 是兩個(gè) richTextBox
評(píng)論
圖片
表情
