📄 common.h
字号:
/************************************************************
版权所有: 北京赛搏长城信息技术研究所 2005.
文件名: common.h
作者: 胡托任
描述: 存放一些宏定义和数据结构的头文件
***********************************************************/
#ifndef _COMMOM1234567890_
#define _COMMOM1234567890_
/* 应用程序名称长度宏定义 */
#ifdef MAX_PATH
#undef MAX_PATH
#endif
#define MAX_PATH 260
/* 规则结构中备注字段长度宏定义 */
#define STR_LEN 64
/* 网络数据包协议类型 */
#define IPPROTO_IP 0 /* dummy for IP */
#define IPPROTO_ICMP 1 /* control message protocol */
#define IPPROTO_IGMP 2 /* group mgmt protocol */
#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */
#define IPPROTO_IPIP 4 /* IP encapsulation in IP */
#define IPPROTO_TCP 6 /* tcp */
#define IPPROTO_EGP 8 /* exterior gateway protocol */
#define IPPROTO_PUP 12 /* pup */
#define IPPROTO_UDP 17 /* user datagram protocol */
#define IPPROTO_IDP 22 /* xns idp */
#define IPPROTO_TP 29 /* tp-4 w/ class negotiation */
#define IPPROTO_RSVP 46 /* resource reservation */
#define IPPROTO_ESP 50
#define IPPROTO_AH 51
#define IPPROTO_EON 80 /* ISO cnlp */
#define IPPROTO_ENCAP 98 /* encapsulation header */
#define IPPROTO_RAW 255 /* raw IP packet */
#define IPPROTO_MAX 256
#define IP_PROTOCOL 0x0008 //IP 协议
#define TH_SYN 0x02
#define TH_FIN 0x01
#define TH_RST 0x04
#define TH_ACK 0x10
/* 应用层与内核通信使用的一些标志定义 */
#define FILE_DEVICE_HOOKIP 0x00008300
//设置允许访问的子网地址 htr 2005-06-27
#define IOCTL_PROTOCOL_SET_FILTER_MODEFW CTL_CODE(FILE_DEVICE_HOOKIP, 0 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_SET_NETCTRLINFO CTL_CODE(FILE_DEVICE_HOOKIP, 1 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_FORBID_NETCTRLINFO CTL_CODE(FILE_DEVICE_HOOKIP, 2 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_ADD_NETCTRLINFO CTL_CODE(FILE_DEVICE_HOOKIP, 3 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_DEL_NETCTRLINFO CTL_CODE(FILE_DEVICE_HOOKIP, 4 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_DEL_ALLNETCTRL CTL_CODE(FILE_DEVICE_HOOKIP, 5 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_REFSEM_LOG CTL_CODE(FILE_DEVICE_HOOKIP, 6 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_DEREFSEM_LOG CTL_CODE(FILE_DEVICE_HOOKIP, 7 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_GET_WARNLOG CTL_CODE(FILE_DEVICE_HOOKIP, 8 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_SET_SERVERIP CTL_CODE(FILE_DEVICE_HOOKIP, 9 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_SET_CENTERIP CTL_CODE(FILE_DEVICE_HOOKIP, 10 , METHOD_NEITHER, FILE_ANY_ACCESS)
//add by htr 2005-12-18
//#define IOCTL_PROTOCOL_REFSEM_TCPUDPLOG CTL_CODE(FILE_DEVICE_HOOKIP, 11 , METHOD_NEITHER, FILE_ANY_ACCESS)
//#define IOCTL_PROTOCOL_DEREFSEM_TCPUDPLOG CTL_CODE(FILE_DEVICE_HOOKIP, 12 , METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_GET_TCPUDPLOG CTL_CODE(FILE_DEVICE_HOOKIP, 13 , METHOD_NEITHER, FILE_ANY_ACCESS)
/* 缓冲区能存放数据包的个数宏定义 */
#define OUT_PKT_NUM 100
#define OUT_PKT_LEN 1514
/* 以太网包头数据结构 */
typedef struct
{
UCHAR MAC_DA[6];
UCHAR MAC_SA[6];
USHORT ProtocolType;
}MAC_HEADER, *PMAC_HEADER;
/* IP包头数据结构 */
typedef struct
{
UCHAR Ver; //版本和IP包头长度
UCHAR Service; //服务类型
UCHAR LengthU;
UCHAR LengthL;//封包长度
USHORT Identification; //封包标志
USHORT FragmentOffset;//标志位和偏移地址
UCHAR LiveTime; //存活时间
UCHAR Protocol;//协议
USHORT HeaderCRC;//校验和
ULONG IP_SA;//源IP
ULONG IP_DA;//目的IP
}IP_HEADER, *PIP_HEADER;
/* TCP包头数据结构 */
typedef struct
{
USHORT SourPort;//源端口
USHORT DestPort;//目的端口
ULONG SeqNo;//序号
ULONG AckNo;//确认号
UCHAR HLen;//头长度
UCHAR Flag;//标志位
USHORT WndSize;//窗口大小
USHORT ChkSum;//校验和
USHORT UrgPtr;//紧急指针
}TCP_HEADER,*PTCP_HEADER;
/* UDP包头数据结构 */
typedef struct
{
USHORT SourPort;//源端口
USHORT DestPort;//目的端口
USHORT Len;//封包长度
USHORT ChkSum;//校验和
}UDP_HEADER,*PUDP_HEADER;
/*ICMP包头数据结构 */
typedef struct
{
UCHAR Type;
UCHAR Code;
USHORT ChkSum;
}ICMP_HEADER, *PICMP_HEADER;
/* 内核使用的子网访问控制信息链表 */
typedef struct _NETCTRL_INFO_
{
ULONG ulMaskIP;
ULONG ulGateWay;
struct _NETCTRL_INFO_ *next;
}NETCTRLINFO, *PNETCTRLINFO;//htr 2005-06-27
typedef struct _NetWarn_Info
{
char pSerialNum[20];
int bDirection;
int iProtocol;
unsigned long ulDHostIP;
unsigned long ulSHostIP;
int iDestPort;
int iSourcePort;
int bCut;
unsigned long ltime;
}NETWARNINFO,*PNETWARNINFO;
//TCP连接日志
typedef struct _TCP_CONN_LOG{
char pSerialNum[20];//序列号
int iProtocol;//协议,同告警信息
int iType;//1表示建立连接。0表示断开连接
unsigned long ulSHostIP;//源地址
unsigned long ulDHostIP;//目的地址
unsigned short iSPort;//源端口
int short iDPort;//目的端口
unsigned long ltime;//时间
}TCPCONLOG,*PTCPCONLOG;
//TCP连接列表
typedef struct _TCP_CONN_LOG_LIST{
int iType;//1表示建立连接。0表示断开连接
unsigned long ulDHostIP;//目的地址
int short iDPort;//目的端口
struct _TCP_CONN_LOG_LIST *Next;//下一个信息列表
}TCPCONLOGLIST,*PTCPCONLOGLIST;
/* ICMP访问方向宏定义 */
#define ICMP_NORMAL 0
#define ICMP_REQUEST 1
#define ICMP_RESPONSE 2
/* ICMP包头标志宏定义 */
#define ICMP_ECHOREPLY 0 /* echo reply */
#define ICMP_UNREACH 3 /* dest unreachable, codes: */
#define ICMP_UNREACH_NET 0 /* bad net */
#define ICMP_UNREACH_HOST 1 /* bad host */
#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */
#define ICMP_UNREACH_PORT 3 /* bad port */
#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */
#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */
#define ICMP_UNREACH_NET_UNKNOWN 6 /* unknown net */
#define ICMP_UNREACH_HOST_UNKNOWN 7 /* unknown host */
#define ICMP_UNREACH_ISOLATED 8 /* src host isolated */
#define ICMP_UNREACH_NET_PROHIB 9 /* prohibited access */
#define ICMP_UNREACH_HOST_PROHIB 10 /* ditto */
#define ICMP_UNREACH_TOSNET 11 /* bad tos for net */
#define ICMP_UNREACH_TOSHOST 12 /* bad tos for host */
#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */
#define ICMP_REDIRECT 5 /* shorter route, codes: */
#define ICMP_REDIRECT_NET 0 /* for network */
#define ICMP_REDIRECT_HOST 1 /* for host */
#define ICMP_REDIRECT_TOSNET 2 /* for tos and net */
#define ICMP_REDIRECT_TOSHOST 3 /* for tos and host */
#define ICMP_ECHO 8 /* echo service */
#define ICMP_ROUTERADVERT 9 /* router advertisement */
#define ICMP_ROUTERSOLICIT 10 /* router solicitation */
#define ICMP_TIMXCEED 11 /* _time32 exceeded, code: */
#define ICMP_TIMXCEED_INTRANS 0 /* ttl==0 in transit */
#define ICMP_TIMXCEED_REASS 1 /* ttl==0 in reass */
#define ICMP_PARAMPROB 12 /* ip header bad */
#define ICMP_PARAMPROB_OPTABSENT 1 /* req. opt. absent */
#define ICMP_TSTAMP 13 /* timestamp request */
#define ICMP_TSTAMPREPLY 14 /* timestamp reply */
#define ICMP_IREQ 15 /* information request */
#define ICMP_IREQREPLY 16 /* information reply */
#define ICMP_MASKREQ 17 /* address mask request */
#define ICMP_MASKREPLY 18 /* address mask reply */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -