我正在做一個家庭作業,基本上要求我們解析DNS響應以獲取IP地址等。問題在於教授詳細告訴了我們DNS服務器的響應情況,但我不知道該發送什麼服務器。我的第一個嘗試是netcat <ip address of local name server> 53
,只需輸入www.google.com並按回車並尋找響應,但我沒有收到任何迴應。什麼是DNS會話的解析?
誰能給我描述什麼是DNS查詢的樣子(例如,有多少字節被允許用於查詢的每個部分)?
我正在做一個家庭作業,基本上要求我們解析DNS響應以獲取IP地址等。問題在於教授詳細告訴了我們DNS服務器的響應情況,但我不知道該發送什麼服務器。我的第一個嘗試是netcat <ip address of local name server> 53
,只需輸入www.google.com並按回車並尋找響應,但我沒有收到任何迴應。什麼是DNS會話的解析?
誰能給我描述什麼是DNS查詢的樣子(例如,有多少字節被允許用於查詢的每個部分)?
-1推薦使用逆向工程作爲實現標準化協議併發布規範的一種方法(RFC 1035) – 2011-03-05 02:00:52
我沒有時間仔細閱讀RFC,Wireshark非常感謝。 – ThatQuestionGuy 2011-03-05 02:11:21
兩者都是(閱讀RFP並查看數據包)。你看過WireShark嗎?不得不對其進行逆向工程 - 它爲你解析 - 比閱讀代碼或RFP更容易。看完之後,你可以更好地理解RFP。 – 2011-03-05 23:22:24
這應該由RFC 1034第3.7節涵蓋,但我只是瞥了一眼,更別提真正閱讀的東西了。
哈哈ietf耶;) – 2011-03-05 01:55:54
我相信它是1035你想要的協議。 – 2011-03-05 02:01:40
不也忘了看看1101,1183,1348,1876年,1982年,2065,2181 ,2308,2535,4033,4034,4035,4343,4592,5936是更新RFC HTTP://tools.ietf .org/html/rfc1034和1995年,1996年,2136年,2137年,2845年,3425年,3658年,5966年http://tools.ietf.org/html/rfc1035 Wireshark是一個寶貴的工具,看看究竟是怎麼回事。 – jfs 2011-03-05 02:10:43
這並不直接回答你的問題,但嘗試的命令行運行NSLOOKUP和查看可用的選項。你可以命令它來查詢具體項目,如MX記錄等
但如果你更感興趣的是協議本身的樣子?這個RFC有比你想象的更多的信息:http://tools.ietf.org/html/rfc1035
DNS查詢的基本形狀是一個很短的頭部,基本上是所有固定的字節值,接着是如果你取名字,用一個點(.
),然後用1-63範圍內的一個字節替換每個點,表示名稱的下一個段到下一個點的長度,後面跟着一些更多的固定值字節。只要你所做的只是基本的地址查找,而沒有像區域傳輸那樣的花哨,這就是你需要了解的DNS協議的全部內容。
對於頭部的細節等領域,閱讀RFC 1035或者只是從一個數據包嗅探器轉儲複製它們。唯一需要改變的是查詢ID(它應該是隨機的,以避免對你的程序進行微不足道的欺騙攻擊),也可能是RR類型(例如,如果你需要查詢IPv6(AAAA)或反向DNS( PTR)除了記錄只是A.
我敢打賭,使用您喜歡的搜索引擎將是相當高效。 – 2011-03-05 01:33:28
我已經通過谷歌搜索已經走了,但他們所有的答案都在C使用預定義的DNS功能做我們 – ThatQuestionGuy 2011-03-05 01:44:54