我目前正在进行一个学校项目,要求我实现一个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[],我将从服务器接收到的响应存储在其中。我需要从这个缓冲区中提取信息并填充结果结构体。
谢谢, Chander
CNAME
记录和相应的A
或AAAA
记录时获取规范名称,否则没有理由在查找地址时解析标签。而跳过它们比解析它们容易得多。 :-) - R.. GitHub STOP HELPING ICE