2011-01-11 16 views
18

我正在爲自己的目的開發一個非常基本的DNS服務器。按照我的理解,DNS服務器接收包含請求的域名的UDP數據包,並以某種標準格式返回相應的IP。開發一個基本的DNS服務器(用C#)

有一個standard library讀/寫UDP數據包從二進制格式。但是我在哪裏可以找到一個用於序列化/反序列化DNS請求/響應的C#庫?

回答

17

開放源代碼ARSoft.Tools.Net庫包含DNS服務器組件(請參閱documentation)。

你可以直接使用這個庫,或者直接使用源代碼來構建自己的DNS請求序列化程序。

+0

從DNS服務器組件的源代碼的確包含DNS包解析代碼。謝謝! –

3

據我所知,我無法找到處理DNS數據包序列化/反序列化的C#庫,這意味着它很可能必須推出自己的庫。

編輯:我遇到了這個網絡包嗅探器項目Code Project這可能有你需要的。聲稱能夠解析TCP/UDP/DNS

我確實發現這個非常有用的網站TCP/IP,它有一套非常全面的網頁描述DNS packet types包括general message format

雖然這可能有一些額外的幫助previous SO question

3

如果你看看維基百科,你可以找到所有RFC的dns協議列表,我發現rfc是實現網絡協議的最佳方式!

現在的dns協議有很多rfc的,所以我不知道這是不是讀這個協議的最好方法,但是你得到了所有你需要的信息。

http://en.wikipedia.org/wiki/Domain_Name_System#Internet_standards

+1

在嘗試使用ARSoft庫之前,我確實發現自己正在實施RFC建議。更具體地說,我使用了http://tools.ietf.org/html/rfc1035的4.1.1節和以下內容 –