我目前正在研究一個學校項目,要求我實現DNS客戶端,而不使用任何庫函數。C中的DNS客戶端
我得在那裏我發送一個DNS請求和接收回復的地步。我被困在答覆的解析中。我收到一個char *數組的答覆,我想將其轉換成一些有意義的結構,從中我可以解析答案。 我經歷了RFC並且我讀了關於數據包結構,但是在C中實現它給我帶來了問題。
誰能給我任何的例子,在C,或者也許在解釋如何做到這一點任何其他語言。或者任何對書籍的引用也很好。
附加信息:
因此,以下是我正在使用的結構。
struct result{
int type;
struct res_ip_cname ip_cname;
struct res_error error;
struct res_mx_ns mx_ns;
};
struct res_ip_cname{
char* lst;
int sec;
char* auth_flag;
};
struct res_error{
char * info;
};
struct res_mx_ns{
char * name;
unsigned short pref;
int sec;
char* auth_flag;
};
我有一個char * buffer [],其中im存儲我從服務器收到的響應。而且,我需要從這個緩衝區提取信息並填充結構結果。
感謝, 錢德爾
這是典型的'連A'答案使用標籤 - 通常是'在回答name'場是指向回到問題的標籤。 – caf 2010-11-15 05:48:29
但是當查找地址時,沒有理由解析標籤,除非您想(1)檢查答案實際上是對您的查詢的答案,或者(2)當您查找的名稱導致「 CNAME「記錄和相應的」A「或」AAAA「記錄。跳過它們比分析它們要容易得多。 :-) – 2010-11-15 08:48:04