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

📄 stru.h

📁 linux 上http email 协议分析程序 主要能够处理大数据量的主干网的应用
💻 H
字号:
#ifndef _STRU_FILE_H
#define _STRU_FILE_H
#include <time.h>

typedef struct _Tfield
{
	bool bvail;
	char fieldname[32];
	int lenbuf;
	char fieldvalue[2048];
};

typedef struct Tfield
{
	int ifields;
	_Tfield *prec;
};

//段落头部
typedef struct Tpartheader
{
	char szmtype[32];
	char szstype[32];
	char szname[128];
};

//


typedef struct TRecordEmail
{
	char vc_addfrom[128];
	char vc_addto[128];
	char vc_addcc[128];
	char vc_addbcc[128];
	char vc_subject[128];
	char vc_date[32];
	char vc_hostfilename[128];
	char vc_mainfilename[128];
	char vc_subfilename[128];
	int num_fileoffset;
	int num_filelength;
};

typedef struct TRecordEmailBody
{
	char vc_addfrom[128];
	char vc_date [32];
	char vc_data [4000];
};

//邮件信息
typedef struct TRecordMailInfo
{
	int i_id;
	char sz_date[19+1];
	char sz_subject[100+1];
	char sz_originalfile[100+1];
	int i_filebegin;
	int i_filesize;
	short si_protocol;
	char sz_clientip[15+1];
	char sz_serverip[15+1];
	char sz_captime[14+1];
	unsigned long l_clientip;

};

//邮件地址
typedef struct TRecordMailAdd
{
	int i_id;
	int i_mailid;
	char sz_name[50+1];
	short si_role;
	char sz_add[80+1];
	
};


//邮件文本
typedef struct TRecordMailText
{
	int i_id;
	int i_mailid;
	char sz_contenttype[50+1];
	char sz_charset[50+1];
	char *psz_text;
	
};

//邮件账号
typedef struct TRecordMailAccout
{
	int i_id;
	char sz_name[50+1];
	char sz_pass[50+1];
	char sz_serverip[15+1];
	char sz_domainname[64+1];
	short si_service;
	char sz_captime[14+1];
	
};



//敏感网页
typedef struct TRecordHtml
{
	int i_id;
	char sz_content[500+1];
	char sz_clientip[15+1];
	char sz_serverip[15+1];
	char sz_domainname[64+1];
	char sz_captime[14+1];
};

typedef struct TRecordIpAddr
{
	unsigned long ip;
	unsigned short port;
	char rootaddr[128];
};


typedef struct TRecordHostIp
{
	char host[128+1];
    char ip[15+1];	

};

typedef struct TRecordHtmlFile
{
	char name [512+1];
	char stat [2+1];
	char time [14+1];
};

struct TMapIpDir
{
	unsigned long ip;
	unsigned short port;
	char rootaddr[128];
	char domain[128];
};

struct TKey
{
	unsigned char protocol;
	unsigned long src_ip;
	unsigned short src_port;
	unsigned long dst_ip;
	unsigned short dst_port;
};


struct TUnit
{
	TKey key;
	int  len;
	void *pval;
	int ipnext;
};

struct TUnit_v
{
	time_t ltime;
	TKey key;
	int  len;
	void *pval;
	struct TUnit_v *pnext;
};

bool operator==(TKey & lhs,TKey & rhs);

//2004-05-20 
/*********
			EMAIL
*********/
//1:邮件账号
typedef struct 
{
	int MAC_ID;
	char MAC_USERID[50+1];
	char MAC_PASSWORD[50+1];
	char MAC_SERVERIP[15+1];
	char MAC_DOMAINNAME[64+1];
	short MAC_SERVICE;
	char MAC_CAPTIME[14+1];
}STRU_TR_T_MAILACCOUNT;

//2:邮件附件
typedef struct 
{
   int	MLF_ID;           
   char MIF_ORIGINALFILE[100+1];
   int MIF_FILEBEGIN;
   int MIF_FILESIZE;
}STRU_TR_T_MAILFILE;

//3: 邮件信息
typedef struct 
{
   int MIF_ID;
   int MLF_ID;
   char MIF_DATE[19+1];
   char MIF_SUBJECT[100+1];
   short MIF_PROTOCOL;
   char MIF_CLIENTIP[15+1];
   char MIF_SERVERIP[15+1];
   char MIF_CAPTIME[14+1];
   char MIF_CLNTLOCATION[300+1];
   char MIF_CLNTACCOUNT[64+1];
   char MIF_CLNTCALLID[64+1];
}STRU_TR_T_MAILINFO ;

//4: 邮件地址

typedef struct   
{
   int ADM_ID;  
   int MIF_ID;
   char ADM_ADDRESS[80+1];
   short ADM_MAILROLE;
   char ADM_SHOWNAME[50+1];
   short ADM_ISCLIENT;
}STRU_TR_T_MAILADDRESS;

//5:邮件文本
typedef struct 
{
   int MTX_ID ;
   int MIF_ID;
   char MTX_CONTENTTYPE[50+1];
   char MTX_CHARSET[50+1];
   char MTX_TEXTBODY[4000+1];
}STRU_TR_T_MAILTEXT;

//6:特控邮件附件

typedef struct 
{
   int SMF_ID;
   char SMF_ORIGINALFILE[100+1];
   int SMF_FILEBEGIN;
   int SMF_FILESIZE;
   //int SMF_FILEID;
}STRU_TR_T_SPEMAILFILE;

//7:特控邮件信息
typedef struct  
{
	int SMI_ID;
	int SMF_ID;
	char SMI_DATE[19+1];
	char SMI_CAPTIME[14+1];
	char SMI_SUBJECT[100+1];
	char SMI_CLIENTIP[15+1];
	char SMI_SERVERIP[15+1];
	short SMI_PROTOCOL;
	char SMI_CLNTLOCATION[300+1];
	char SMI_CLNTACCOUNT[64+1];
	char SMI_CLNTCALLID[64+1];
	short SMI_SPEINFOSTATUS;
}STRU_TR_T_SPEMAILINFO;

//8:特控邮件地址
typedef struct 
{
   int SMA_ID;
   int SMI_ID;
   short SMA_MAILROLE;
   char SMA_SHOWNAME[50+1];
   char SMA_ADDRESS[80+1];
   short SMA_ISCLIENT; 
}STRU_TR_T_SPEMAILADDRESS;

//9:特控邮件文本
typedef struct 
{
   int SMT_ID;
   int SMI_ID;
   char SMT_TEXTBODY[4000+1];
   char SMT_CONTENTTYPE[50+1];
   char SMT_CHARSET[50+1];
   
}STRU_TR_T_SPEMAILTEXT;

/*********
			HTTP 
*********/
//10:提交监控规则
typedef struct 
{
   int SBR_ID ;
   int WMR_ID ;
   char SBR_SUBMITFIELD[64+1];
   char SBR_APPFIELD[64+1];
   char SBR_SUBMITVALUE[64+1];
   short SBR_SUBMITWAY;//  0 非cookie  1 表示cookie
}STRU_TR_T_SUBMITRULE ;

//11:WEB应用
typedef struct 
{
   int WAP_ID;
   char WAP_WEBAPPNAME[64+1];
   char WAP_WEBAPPDESC[300+1];
}STRU_TR_T_WEBAPP;

//12:WEB监控规则

/*typedef struct  
{
   int WMR_ID;
   int ACT_ID;
   int WAP_ID;
   char WMR_URLFEATURE[500+1];
   short WMR_DATAFLOW;

}STRU_TR_T_WEBMONRULE;
*/
typedef struct  
{
   int WMR_ID;
   int ACT_ID;
   int WAP_ID;
   char WMR_URLFEATURE[500+1];
   short WMR_DATAFLOW;
   short WMR_CAPCALL;//0 表示只捕捉设定的字段  1 表示捕捉全部字段
   short WMR_CAPCOOKIE;//0 表示不捕捉cookie  1 表示捉cookie
   char WMR_HOST[64+1];
}STRU_TR_T_WEBMONRULE;
//13:敏感网页

typedef struct  
{
   int SPG_ID;
   int ACT_ID;
   int WAP_ID;
   char SPG_CLIENTIP[15+1];
   char SPG_SERVERIP[15+1];
   char SPG_DOMAINNAME[64+1];
   char SPG_CAPTIME[14+1];
   int SPG_DATAFLOW;
   char SPG_CLNTLOCATION[300+1];
   char SPG_CLNTACCOUNT[64+1];
   char SPG_CLNTCALLID[64+1];
   char SPG_PAGEPOSITION[300+1];
   int	SPG_RESOURCELENGTH;
   int  SPG_HASSUBMIT;
   int  SPG_SPEINFOSTATUS;
}STRU_TR_T_SENPAGE;

typedef struct
{
	int SSP_ID;
	char SSP_SERVERIP[15+1];
	char SSP_DOMAINNAME[64+1];
	char SSP_PAGEPOSITION[300+1];
	char SSP_CLIENTIP[15+1];
	char SSP_CAPTIME[14+1];
	int SSP_DATAFLOW;
	char SSP_CLNTLOCATION[300+1];
	char SSP_CLNTACCOUNT[64+1];
	char SSP_CLNTCALLID[64+1];
	int SSP_RESOURCELENGTH;
	int SSP_HASSUBMIT;
	int SSP_SPEINFOSTATUS;
}STRU_TR_T_SPESENPAGE;

//14:活动类型
typedef struct 
{
   int ACT_ID;
   char ACT_TYPENAME[50+1];
   char ACT_TYPEDESC[250+1];
}STRU_TR_T_ACTIONTYPE;

//15:提交内容
typedef struct 
{
	int SBC_ID;
	int SPG_ID;
	
	char SBC_FIELDNAME[64+1];
	char SBC_FIELDVALUE[4000+1];
}STRU_TR_T_SUBMITCONTENT;

typedef struct 
{
	int SSB_ID; 
	int SSP_ID;
	char SSB_FIELDNAME[64+1];
	char SSB_FIELDVALUE[4000+1];
}STRU_TR_T_SPESUBMITCONTENT;


/**********
	告警
**********/

//16: 特定对象邮件地址
typedef struct  
{
   int AMA_ID;
   int AMG_ID;
   char AMA_EMAILADDRESS[80+1];
}STRU_TR_T_AIMEDMAILADD;


/**********
	活动记录
**********/
typedef struct 
{   
	int INA_ID;
	int CPR_ID;
	int ACT_ID;
	char INA_CLIENTIP[15+1];
	char INA_SERVERIP[15+1];
	char INA_CAPTIME[14+1];
	char INA_ABOUTACTION[500+1];
	char INA_CLNTLOCATION[300+1];
	char INA_CLNTACCOUNT[64+1];
	char INA_CLNTCALLID[64+1];
	char INA_SRVRLOCATION[300+1];
	char INA_SRVRACCOUNT[64+1];
	char INA_SRVRCALLID[64+1];
}STRU_TR_T_INETACTION;

typedef struct
{
    int SKW_ID;              
    short  SKW_TYPE;        
    char  SKW_VALUE[250+1];
}STRU_TR_T_SENKEYWORD;


typedef struct 
{
	int totfield;
	STRU_TR_T_SUBMITRULE *pfield;
	STRU_TR_T_WEBMONRULE rule;
}STRU_APPWEB;


typedef struct
{
	short ADM_MAILROLE;
	char ADM_SHOWNAME[50+1];
	char ADM_ADDRESS[80+1];
}STRU_INMEM_ADDRESS;

typedef struct
{
   int ALE_ID ;
   int AMG_ID  ;
   int ALE_ALARMTYPE ;
   int ALE_ALARMSTATUS  ;
   char ALE_ALARMTITLE [64+1];
   char ALE_ALARMCONTENT[500+1];
   char ALE_ALARMTIME [14+1];
   short ALE_INFOTYPE;
   int  ALE_INFOID;  
   short ALE_FORWARDSTATUS;
}STRU_TR_T_ALARMEVENT;

typedef struct
{
   int CMS_ID ;
   char CMS_STARTIP[15+1];
   char CMS_STOPIP[15+1];
   char CMS_DOMAINNAME[64+1];
   char CMS_DESC[300+1];

}STRU_TR_T_COMMONMONSITE;

typedef struct
{
   int AFE_ID;
   int AMG_ID;
   int AFE_TYPE;
   char AFE_BEGINVALUE[150+1];
   char AFE_ENDVALUE[150+1];
   char AFE_ADDVALUE[150+1];
  
}STRU_TR_T_AIMEDFEATURE;

typedef struct
{
	int	GPR_ID;
	char GPR_PARANAME[64+1];
	char GPR_PARAVALUE[4000+1];
	char GPR_PARADESC[300+1];
}STRU_TR_T_GENERALPARA;

typedef struct
{
	int OTI_ID;
	int AMG_ID;
	int OTI_INFOID;
	int OTI_INFOTYPE;
	int OTI_RPRECISION;
	int OTI_READSTATUS; 
}STRU_TR_T_OBJECT2INFO;


/**********
	无界
**********/
//加密网站 TR_T_SSLSITE


//加密网页 TR_T_SSLWEBPAGE 只记录https请求
typedef struct
{  
	int SWP_ID;
	//int	SLS_ID;
	char SWP_SERVERIP[15+1];
	char SWP_CLIENTIP[15+1];
	char SWP_CAPTIME[14+1];
	char SWP_CLNTLOCATION[300+1];
	char SWP_CLNTACCOUNT[64+1];
	char SWP_CLNTCALLID[64+1];
 }STRU_TR_T_SSLWEBPAGE;

//加密网站 TR_T_SSLSITE
typedef struct
{ 
   int SLS_ID;
   char SLS_DOMAINNAME[64+1];
   char SLS_REMARKS[200+1];
}STRU_TR_T_SSLSITE;

//动态IP TR_T_DYNAMICIP
typedef struct
{    
	int	DIP_ID;
	int SLS_ID;
	char DIP_IP[15+1];
	char DIP_STARTTIME[14+1];
	char DIP_STOPTIME[14+1];
}STRU_TR_T_DYNAMICIP;


//通用 
//telnet 信息
typedef struct
{  
   int TLN_ID; 
   char TLN_STRATTIME[14+1];
   char TLN_STOPTIME[14+1];
   char TLN_CLIENTIP[15+1];
   char TLN_CLIENTLOCATION[300+1];
   char TLN_CLIENTACCOUNT[64+1];
   char TLN_CLIENTCALLID[64+1];
   char TLN_SERVERIP[15+1];
   char TLN_SERVERLOCATION[300+1];
   char TLN_SERVERACCOUNT[64+1];
   char TLN_SERVERCALLID[64+1];
   char TLN_FILEPATH[300+1];
   int TLN_FILELENGTH;
   int TLN_FILESTATUS;
}STRU_TR_T_TELNETINFO;

//ftp information
typedef struct
{
	int FTP_ID;
	char FTP_STRATTIME[14+1];
	char FTP_STOPTIME[14+1];
	char FTP_CLIENTIP[15+1];
	char FTP_CLIENTLOCATION[300+1];
	char FTP_CLIENTACCOUNT[64+1];
	char FTP_CLIENTCALLID[64+1];
	char FTP_SERVERIP[15+1];
	char FTP_SERVERLOCATION[300+1];
	char FTP_SERVERACCOUNT[64+1];
	char FTP_SERVERCALLID[64+1];
	char FTP_FILEPATH[300+1];
	int FTP_FILELENGTH;
	int FTP_FILESTATUS;
}STRU_TR_T_FTPINFO;
#endif




⌨️ 快捷键说明

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