gpt4 book ai didi

c - 格式错误的 DNS 响应

转载 作者:行者123 更新时间:2023-11-30 17:56:28 25 4
gpt4 key购买 nike

我正在尝试向我的浏览器发送一条 dns 响应消息,现在我创建了一些结构并为 drupal.org 网站填写了一个结构。

当我发送响应时,wiresharks 说它格式错误,有人可以看一下吗?

dnsresponse response;
unsigned char buf[sizeof response];


response.id = (unsigned short) htons(GetCurrentProcessId());
response.response = 1;
response.opCode = 0;
response.authoritative = 0;
response.truncated = 0;
response.recursion = 1;
response.recursionAvField = 1;
response.z = 0;

response.replyCode = 0;

response.questions = 1;
response.answer = 1;
response.authorityRRS = 0;
response.additionalRRS = 0;

response.qName = (unsigned char *)malloc(sizeof("www.drupal.org"));
response.qType = 1;
response.qClass = 1;

response.aName = (unsigned char *)malloc(sizeof("www.drupal.org"));
response.aType = 1;
response.aClass = 1;
response.ttl = 0;
response.dataLength = 9;
response.addr = 2362640912;

memcpy(buf, &response, sizeof response);

我的结构如下:

typedef struct
{
unsigned short id; // ID nummer
unsigned short response :1; // 1 is reply 0 is query
unsigned short opCode :4;
unsigned short authoritative :1; // DNS server is authoritative server
unsigned short truncated :1;
unsigned short recursion :1; // Recursie of niet
unsigned short recursionAvField :1; // Recursie in reply
unsigned short z :3;
//unsigned short aa;
//unsigned short nAD;
unsigned short replyCode :4;

unsigned short questions;
unsigned short answer;
unsigned short authorityRRS;
unsigned short additionalRRS;

unsigned char * qName;
unsigned short qType;
unsigned short qClass;

unsigned char * aName;
unsigned short aType;
unsigned short aClass;
int ttl :32;
unsigned short dataLength;
unsigned int addr :32;
}dnsresponse;

亲切的问候,

最佳答案

我不知道协议(protocol)级别的 dns,但你的问题是

malloc(sizeof("string"))

是否复制字符串,它只为执行此操作所需的字节保留空间 - 提示:strdup

编辑:哦,我只读了 nos 评论中的“获取 dns 规范”部分。抱歉,重复了。

关于c - 格式错误的 DNS 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com