gendnspacket.c

来自「我的本科生毕业设计」· C语言 代码 · 共 62 行

C
62
字号
#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 + =
减小字号Ctrl + -
显示快捷键?