⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 senddnsquery-raw.c

📁 linux网络编程中的经典源码
💻 C
字号:
#include	"udpcksum.h"/* * Build a DNS A query for "a.root-servers.net" and write it to * the raw socket. *//* include send_dns_query */voidsend_dns_query(void){	size_t		nbytes;	char		*buf, *ptr;	buf = Malloc(sizeof(struct udpiphdr) + 100);	ptr = buf + sizeof(struct udpiphdr);/* leave room for IP/UDP headers */	*((uint16_t *) ptr) = htons(1234);	/* identification */	ptr += 2;	*((uint16_t *) ptr) = htons(0x0100);	/* flags: recursion desired */	ptr += 2;	*((uint16_t *) ptr) = htons(1);		/* # questions */	ptr += 2;	*((uint16_t *) ptr) = 0;			/* # answer RRs */	ptr += 2;	*((uint16_t *) ptr) = 0;			/* # authority RRs */	ptr += 2;	*((uint16_t *) ptr) = 0;			/* # additional RRs */	ptr += 2;	memcpy(ptr, "\001a\014root-servers\003net\000", 20);	ptr += 20;	*((uint16_t *) ptr) = htons(1);		/* query type = A */	ptr += 2;	*((uint16_t *) ptr) = htons(1);		/* query class = 1 (IP addr) */	ptr += 2;	nbytes = (ptr - buf) - sizeof(struct udpiphdr);	udp_write(buf, nbytes);	if (verbose)		printf("sent: %d bytes of data\n", nbytes);}/* end send_dns_query */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -