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

📄 dns_client.h

📁 《嵌入式网络系统设计-基于Atmel ARM7 系列》这个本书的光盘资料
💻 H
字号:
//*------------------------------------------------------------------------------------------------
//* 文件名				: dns_clinet.c
//* 功能描述			: dns客户端头文件
//* 作者    			: 焦海波
//* 版本				: 0.1
//* 建立日期、时间		: 2006/08/10 15:27
//* 最近修改日期、时间	: 
//* 修改原因			: 
//*------------------------------------------------------------------------------------------------

#ifndef	__dns_client_h__
#define	__dns_client_h__

//*---------------------------------------- 结构体及宏定义 -----------------------------------------
#define	DNS_PORT					53			//* 指定要连接的端口号
#define	DNS_PACKET_QUERY_TYPE		0x01		//* 指定的查询类型为IP地址查询
#define	DNS_PACKET_QUERY_CLASS		0x01		//* 指定的查询类为互联网地址

#define	DNS1_IP_ADDR	0xCA668644				//* 主DNS服务器地址(0xC0A80A47)
#define	DNS2_IP_ADDR	0xD24DC058				//* 备用DNS服务器地址

#define	DNS_OK			0						//* 查询成功
#define DNS_NOT_EXIST	1						//* 指定的域名不存在
#define DNS_NOT_CONN	2						//* 无法连接指定的域名服务器(主、备服务器均不可用)
#define DNS_OTHER		3						//* 未知错误

typedef struct {
	INT32U bitID		:16;
	INT32U bitIsRD		:1;        				//* 是否期望递归查询,查询时为1,否则,在DNS服务器无法找到相
	                          		 			//* 关域名记录时客户端只能得到一个存在该记录的域名服务器地址
	
	INT32U bitIsTC		:1;						//* 是否允许截断		
	INT32U bitOpcode	:4;						//* 0,标识标准查询;1是反向查询;2为服务器状态请求		
	INT32U bitIsAA		:1;						//* 是否为授权回答                               		 		
	INT32U bitCmd		:1;        				//* 0是查询,1是响应
	                               		
	INT32U bitOptResult	:4;        				//* 指定查询的域名服务器返回的操作结果
	INT32U bitRsrved    :3;        				//* 保留字段,必须为0
	INT32U bitIsRA      :1;        				//* 指定域名服务器支持递归查询
} BST_ID_AND_FLAGS;

PACK_STRUCT_BEGIN
typedef struct {
	INT32U u32IDAndFlags;						//* 标识和标志
	INT16U u16QCount;							//* 问题数 
	INT16U u16ACount;							//* 回答数
	INT16U u16AuthCount;						//* 授权资源数量
	INT16U u16ARC;								//* 额外资源记录数
} ST_DNS_PACKET_HDR;
PACK_STRUCT_END

#define DNS_PACKET_HDR_LEN	12					//* DNS包头部长度

//* UDP接收函数入口参数
typedef struct {
	INT32U u32RtnCode;
	INT32U *pu32IP;
	INT32S s32DNLen;
} ST_RECV_FUN_ARG;

//*-------------------------------------- 函数原型声明 ---------------------------------------------
extern INT32U u32DNToIP(INT8S *pszDN, INT32S s32DNLen, INT32U *pu32IP);
#endif

⌨️ 快捷键说明

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