2009-10-31 141 views
1

我必須在C中實現一個DNS服務器,我不知道從哪裏開始。 DNS具有的所有功能是什麼......我如何在單個C文件中實現一個簡單的DNS。一個簡單的DNS服務器

我甚至不想使用數據庫,只是一個文件將工作。

預先感謝您

+0

不寫一個完整的DNS,所以閱讀永不結束的RFC是有點無聊。或者這是絕對必要的? – 2009-10-31 17:39:30

+0

你是什麼意思的裸骨?什麼都不支持,但查找? :) – 2009-10-31 17:58:25

+0

是的。我想要一個骨架代碼,它讓我明白傳遞的消息的類型等。 – 2009-11-01 07:31:04

回答

4

這大功課!你的老師雄心勃勃。實現DNS 需要讀取至少十分複雜RFC(不提DNSSEC ...)不要 限制自己的RFC 1034和1035,有強制性 RFC後(如2181和2671)。看到他們的nice graph

它是一個權威的名稱服務器還是遞歸的?

您是否必須從頭開始?如果不是這樣,我強烈建議與evldns庫,它可以讓你在200線下的寫 anthoritative名稱服務器

否則啓動 ,通常建議適用:讀取源代碼(我建議 nsd爲權威服務器和unbound遞歸 一)。

1

DNS是一個很大的規格。如果你真的想要DNS,請使用DNS服務器。所以,如果你想獲得真正的快速和骯髒的,爲什麼不寫編輯您的主機文件(C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \ hosts或/ etc/hosts文件(在UNIX上)?)程序