?? 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 + -