📄 dns_client.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 + -