📄 gendnspacket.c
字号:
#include "genDNSPacket.h"void genDNSPacket(char *addr,char *DNSsendBuff) //url is the DNS server ip or address and here we can delete{ memset(DNSsendBuff,'\0',sizeof(DNSsendBuff)); pDNSHDR pDnsHdr = (pDNSHDR)malloc(sizeof(DNSHDR)); pQUERYHDR pQueryHdr = (pQUERYHDR)malloc(sizeof(QUERYHDR)); pDnsHdr->id = htons(0x0000); pDnsHdr->flags = htons(0x0100); pDnsHdr->questNum = htons(0x0001); pDnsHdr->answerNum = htons(0x0000); pDnsHdr->authorNum = htons(0x0000); pDnsHdr->additionNum = htons(0x0000); memcpy(DNSsendBuff,pDnsHdr,sizeof(DNSHDR)); char *name = (char *)malloc(17 *sizeof(char)); // 3www4xjtu3edu2cn0 char num; char *url; int cur = 0; num = 0x03; url = "www"; memcpy(name + cur,&num,sizeof(num)); cur += sizeof(num); memcpy(name+ cur,url,strlen(url)); cur += strlen(url); num = 0x04; url = "xjtu"; memcpy(name + cur,&num,sizeof(num)); cur += sizeof(num); memcpy(name + cur,url,strlen(url)); cur += strlen(url); num = 0x03; url = "edu"; memcpy(name + cur,&num,sizeof(num)); cur += sizeof(num); memcpy(name + cur,url,strlen(url)); cur += strlen(url); num = 0x02; url = "cn"; memcpy(name + cur,&num,sizeof(num)); cur += sizeof(num); memcpy(name + cur,url,strlen(url)); cur += strlen(url); num = 0x00; memcpy(name + cur,&num,sizeof(num)); memcpy(DNSsendBuff + sizeof(DNSHDR),name,17); pQueryHdr->type = htons(0x0001); pQueryHdr->class = htons(0x0001); memcpy(DNSsendBuff + sizeof(DNSHDR) + 17,pQueryHdr,sizeof(QUERYHDR));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -