亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? probemail.h

?? 一個網絡監視的程序
?? H
字號:
// ProbeMail.h: interface for the ProbeMail class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PROBEMAIL_H__DFE918F5_7698_4A18_917C_A3D9A318B4C9__INCLUDED_)
#define AFX_PROBEMAIL_H__DFE918F5_7698_4A18_917C_A3D9A318B4C9__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "global.h"

extern Mail * Header_out;
extern Mail * Header_in;
extern CRITICAL_SECTION gCriticalSectionForPrtBuff;
extern CRITICAL_SECTION gCriticalSectionMailList;
extern struct probebuff * PtrBuffWrite;

//#pragma comment(lib, "wsock32.lib")
typedef struct ip_address
{
	u_char byte1;
	u_char byte2;
	u_char byte3;
	u_char byte4;
} ip_address;
typedef struct ip_header
{
	u_char ver_ihl;
	u_char tos;
	u_short tlen;
	u_short identification;
	u_short flags_fo;
	u_char ttl;
	u_char proto;
	u_short crc;
	ip_address saddr;
	ip_address daddr;
	u_int op_pad;
} ip_header;
typedef struct tcp_header
{
	u_short sport;
	u_short dport;
	u_int seqnum;
	u_int acknum;
	u_short hlen_codes;
	u_short window;
	u_short crc;
	u_short pointer;
	u_int options;
} tcp_header;




class ProbeMail  
{
public:
	ProbeMail();
	CheckMail();
	StartProbe(int devselect);
	initallize();
	char devdesc[5][200];
	int devnum;
	
	~ProbeMail();
//*******************************************************************************
//函 數 名:Get_Infos
//功    能:當有新郵件郵件到達,則調用本函數提取其余信息,指向IP頭起始地址的指針,
//輸入參數:源端口,目的端口,指向數據部分起始地址的指針,指向郵件鏈表節點的指針,
//			進或出郵件標識
//輸出參數:無
//編寫日期:2004.07.19
//修改日期:2004.07.20
//作    者:楊光
//其他說明:
//********************************************************************************

	static void Get_Infos(ip_header *ih, u_short sport, u_short dport, char *data, Mail *lookup, int tag){
	Mail *temp = new Mail;
	temp->finish = 0;
	temp->from_flag = 0;
	temp->to_flag = 0;
	temp->subject_flag = 0;
	temp->attachment_flag = 0;
	if(tag == 1)//out
	{
		temp->port = sport;
	}
	else//in
	{
		temp->port = dport;
	}
	temp->next = NULL;
	lookup->next = temp;

	lookup = lookup->next;

	if(temp->from_flag != 1)
	{
		char *pos = NULL;
		pos = strstr(data, "From:");
		if(pos == NULL)
		{
			pos = strstr(data, "FROM:");
			if(pos == NULL)
			{
				pos = strstr(data, "from:");
			}
		}
		if(pos != NULL)				
		{
			temp->from_flag = 1;
			pos = pos + 5;								
			while(*pos == ' ' || *pos == '\"' || *pos == '=' || *pos == '\n')				
				pos++;				
			temp->from[0] = '\"';				
			int i = 1;
			while(*pos != ' ' && *pos != '\"' && *pos != '\n')
			{
				temp->from[i] = *pos;
				pos++;
				i++;
			}
			temp->from[i] = '\"';
			i++;
			temp->from[i] = '\0';
		//	printf("%s\n", temp->from);
		}
	}

	if(temp->to_flag != 1)
	{
		char *pos = NULL;//---------------------得到TO字段
		pos = strstr(data, "To:");
		if(pos == NULL)
		{
			pos = strstr(data, "TO:");
			if(pos == NULL)
			{
				pos = strstr(data, "to:");
			}
		}
		if(pos != NULL)				
		{
			temp->to_flag = 1;
			pos = pos + 3;								
			while(*pos == ' ' || *pos == '\"' || *pos == '=' || *pos == '\n')				
				pos++;				
			temp->to[0] = '\"';				
			int i = 1;
			while(*pos != ' ' && *pos != '\"' && *pos != '\n')
			{
				temp->to[i] = *pos;
				pos++;
				i++;
			}
			temp->to[i] = '\"';
				i++;
			temp->to[i] = '\0';
		//	printf("%s\n", temp->to);
		}
	}

	if(temp->subject_flag != 1)
	{
		char *pos = NULL;//---------------------得到SUBJECT字段
		pos = strstr(data, "Subject:");
		if(pos == NULL)
		{
			pos = strstr(data, "SUBJECT:");
			if(pos == NULL)
			{
				pos = strstr(data, "subject:");
			}
		}
		if(pos != NULL)
		{
			temp->subject_flag = 1;
			pos = pos + 8;								
			while(*pos == ' ' || *pos == '\"' || *pos == '=' || *pos == '\n')				
				pos++;				
			temp->subject[0] = '\"';				
			int i = 1;
			while(*pos != ' ' && *pos != '\"' && *pos != '\n')
			{
				temp->subject[i] = *pos;
				pos++;
				i++;
			}
			temp->subject[i] = '\"';
			i++;
			temp->subject[i] = '\0';
		//	printf("%s\n", temp->subject);
		}
	}

	if(temp->attachment_flag != 1)
	{
		char *pos = NULL;//---------------------得到ATTACHMENT字段
		pos = strstr(data, "attachment");
		if(pos != NULL)
		{
			data = pos;
			pos = strstr(data, "filename");
			if(pos != NULL)
			{
				temp->attachment_flag = 1;
				pos = pos + 8;
				while(*pos == ' ' || *pos == '\"' || *pos == '=' || *pos == '\n')
					pos++;
				temp->attachment[0] = '\"';
				int i = 1;
				while(*pos != ' ' && *pos != '\"' && *pos != '\n')
				{
					temp->attachment[i] = *pos;
					pos++;
					i++;
				}
				temp->attachment[i] = '\"';
				i++;
				temp->attachment[i] = '\0';
			//	printf("%s\n", temp->attachment);
			}
		}
	}
	if(temp->from_flag == 1 && temp->to_flag == 1 && temp->subject_flag == 1 || temp->attachment_flag == 1)
	{
		temp->finish = 1;
	}

	

}
//*******************************************************************************
//函 數 名:Get_Info
//功    能:當前郵件已在鏈表中但只包含部分信息,則調用本函數提取其余信息
//輸入參數:指向IP頭起始地址的指針,源端口,目的端口,指向數據部分起始地址的指針,
//			指向郵件鏈表節點的指針,進或出郵件標識
//輸出參數:無
//編寫日期:2004.07.19
//修改日期:2004.07.20
//作    者:楊光
//其他說明:
//********************************************************************************
	static void Get_Info(ip_header *ih, u_short sport, u_short dport, char *data, Mail *lookup, int tag){
		if(lookup->next->from_flag != 1)//---------------------得到FROM字段
	{
		char *pos = NULL;
		pos = strstr(data, "From:");
		if(pos == NULL)
		{
			pos = strstr(data, "FROM:");
			if(pos == NULL)
			{
				pos = strstr(data, "from:");
			}
		}
		if(pos != NULL)
		{
			lookup->next->from_flag = 1;
			pos = pos + 5;
			while(*pos == ' ' || *pos == '\"' || *pos == '=' || *pos == '\n')//純信息
				pos++;
			lookup->next->from[0] = '\"';
			int i = 1;
			while(*pos != ' ' && *pos != '\"' && *pos != '\n')
			{
				lookup->next->from[i] = *pos;
				pos++;
				i++;
			}
			lookup->next->from[i]='\"';
			i++;
			lookup->next->from[i] = '\0';
		//	printf("FROM: %s\n", lookup->next->from);	
		}
	}

	if(lookup->next->to_flag != 1)//---------------------得到TO字段
	{
		char *pos = NULL;
		pos = strstr(data, "To:");
		if(pos == NULL)
		{
			pos = strstr(data, "TO:");
			if(pos == NULL)
			{
				pos = strstr(data, "to:");
			}
		}
		if(pos != NULL)
		{
			lookup->next->to_flag = 1;
			pos = pos + 3;
			while(*pos == ' ' || *pos == '\"' || *pos == '=' || *pos == '\n')
				pos++;
			lookup->next->to[0] = '\"';
			int i = 1;
			while(*pos != ' ' && *pos != '\"' && *pos != '\n')
			{
				lookup->next->to[i] = *pos;
				pos++;
				i++;
			}
			lookup->next->to[i] = '\"';
			i++;
			lookup->next->to[i] = '\0';
		//	printf("TO: %s\n", lookup->next->to);
		}
	}

	if(lookup->next->subject_flag != 1)//---------------------得到SUBJECT字段
	{
		char *pos = NULL;
		pos = strstr(data, "Subject:");
		if(pos == NULL)
		{
			pos = strstr(data, "SUBJECT:");
			if(pos == NULL)
			{
				pos = strstr(data, "subject:");
			}
		}
		if(pos != NULL)
		{
			lookup->next->subject_flag = 1;
			pos = pos + 8;
			while(*pos == ' ' || *pos == '\"' || *pos == '=' || *pos == '\n')
				pos++;
			lookup->next->subject[0] = '\"';
			int i =1;
			while(*pos != ' ' && *pos != '\"' && *pos != '\n')
			{
				lookup->next->subject[i] = *pos;
				pos++;
				i++;
			}

			lookup->next->subject[i] = '\"';
			i++;
			lookup->next->subject[i] = '\0';
		//	printf("SUBJECT: %s\n", lookup->next->subject);
		}
	}

	if(lookup->next->attachment_flag != 1)//---------------------得到attachment字段
	{
		char *pos = NULL;
		pos = strstr(data, "attachment");
		if(pos != NULL)
		{
			data = pos;
			pos = strstr(data, "filename");
			if(pos != NULL)
			{
				lookup->next->attachment_flag = 1;
				pos = pos + 8;
				while(*pos == ' ' || *pos == '\"' || *pos == '=' || *pos == '\n')
					pos++;
				lookup->next->attachment[0] = '\"';
				int i =1;
				while(*pos != ' ' && *pos != '\"' && *pos != '\n')
				{
					lookup->next->attachment[i] = *pos;
					pos++;
					i++;
				}
				lookup->next->attachment[i] = '\"';
				i++;
				lookup->next->attachment[i] = '\0';
			//	printf("ATTACHMENT: %s\n", lookup->next->attachment);
			}
		}
	}
	if(lookup->next->from_flag == 1 && lookup->next->to_flag == 1 && lookup->next->subject_flag == 1 || lookup->next->attachment_flag == 1)
	{
		lookup->next->finish = 1;
	}
	
	}
	//*******************************************************************************
	//函 數 名:packet_handler
	//功    能:回調函數,具體執行數據包處理工作
	//輸入參數:用戶定義的包含捕獲會話狀態的參數,捕獲數據包信息頭,指向數據包中的數據
	//輸出參數:無
	//編寫日期:2004.07.18
	//修改日期:2004.07.20
	//作    者:楊光
	//其他說明:
	//********************************************************************************
	static void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data){
		ip_header *ih;
		tcp_header *th;
		u_int ip_len;
		u_short sport, dport;
		
		//取IP頭位置
		ih = (ip_header *)(pkt_data + 14);
		//取TCP頭位置
		ip_len = (ih->ver_ihl & 0xf) * 4;
		th = (tcp_header *)((u_char *)ih + ip_len);
		
		//從網絡字節順序轉到主機字節順序
		sport = ntohs(th->sport);
		dport = ntohs(th->dport);


		
		if(dport == 25)//在此邏輯中為客戶向服務器傳信息: mail_out
		{
			EnterCriticalSection(&gCriticalSectionMailList);
			
			Mail *lookup = Header_out;
			while(lookup->next != NULL)
			{
				if(lookup->next->port == sport)
					break;
				lookup = lookup->next;
			}
			char *data = (char *)th + sizeof(tcp_header);//得到數據的起始地址
			
			if(lookup->next != NULL)//已有紀錄
			{
				Get_Info(ih, sport, dport, data, lookup, 1);
			}
			else//無記錄,新的郵件
			{

				Get_Infos(ih, sport, dport, data, lookup, 1);
			}
			LeaveCriticalSection(&gCriticalSectionMailList);
			
		}
		if(sport == 110)
		{
			EnterCriticalSection(&gCriticalSectionMailList);
			
			Mail *lookup = Header_in;
			while(lookup->next != NULL)
			{
				if(lookup->next->port == dport)
					break;
				lookup = lookup->next;
			}
			char *data = (char *)th + sizeof(tcp_header);//得到數據的起始地址
			
			if(lookup->next != NULL)//已有紀錄
			{
				Get_Info(ih, sport, dport, data, lookup, 2);
			}
			else//無記錄,新的郵件
			{
				Get_Infos(ih, sport, dport, data, lookup, 2);
			}
			LeaveCriticalSection(&gCriticalSectionMailList);
			
		}


	}
private:
//	CRITICAL_SECTION CriticalSectionMailList;
//	CRITICAL_SECTION MailOutCriticalSection
	pcap_if_t *alldevs;
	

};


#endif // !defined(AFX_PROBEMAIL_H__DFE918F5_7698_4A18_917C_A3D9A318B4C9__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人小视频| 5566中文字幕一区二区电影| 欧美熟乱第一页| 精品国产一二三区| 一区二区三区四区在线播放| 国产一区二区三区在线看麻豆| 欧美日韩www| 亚洲精品你懂的| 国产福利一区在线| 日韩区在线观看| 日韩高清不卡一区二区| 91福利国产精品| 亚洲欧美日韩国产综合在线| 国产91综合网| 久久久欧美精品sm网站| 看电影不卡的网站| 日韩欧美亚洲一区二区| 五月天中文字幕一区二区| 欧洲一区二区三区在线| 亚洲精品伦理在线| a亚洲天堂av| 国产精品久久久爽爽爽麻豆色哟哟| 蜜桃av一区二区三区| 日韩欧美中文一区二区| 日本aⅴ亚洲精品中文乱码| 欧美性做爰猛烈叫床潮| 夜夜嗨av一区二区三区四季av| 成人av电影在线播放| 中文字幕一区二区日韩精品绯色| 国产成人在线观看免费网站| 久久久av毛片精品| 国产一区二区三区黄视频 | 亚洲天天做日日做天天谢日日欢 | 99久久免费国产| 中文字幕一区三区| 色婷婷综合久久久久中文| 亚洲欧美日本韩国| 色婷婷激情一区二区三区| 亚洲综合一区在线| 欧美亚洲综合一区| 日本aⅴ亚洲精品中文乱码| 日韩欧美在线网站| 成人综合婷婷国产精品久久 | 国产日韩欧美不卡| a在线播放不卡| 亚洲国产精品久久一线不卡| 欧美日韩精品一区二区三区| 日韩精品电影在线观看| 欧美刺激脚交jootjob| 国产乱码一区二区三区| 亚洲丝袜另类动漫二区| 欧美无乱码久久久免费午夜一区| 日韩中文字幕区一区有砖一区| 91麻豆精品国产91久久久久久| 另类的小说在线视频另类成人小视频在线| 精品福利视频一区二区三区| 国产成人综合在线观看| 一区二区三区在线观看视频| 日韩情涩欧美日韩视频| 不卡一区二区在线| 日韩高清电影一区| 中文字幕精品在线不卡| 欧美日韩在线亚洲一区蜜芽| 韩国一区二区三区| 亚洲一区成人在线| 久久久亚洲国产美女国产盗摄| 91视视频在线观看入口直接观看www | 欧美午夜精品久久久久久超碰| 日一区二区三区| 国产亚洲女人久久久久毛片| 色综合一个色综合亚洲| 男男gaygay亚洲| 亚洲日本电影在线| 精品欧美久久久| 91久久精品一区二区二区| 捆绑紧缚一区二区三区视频| 亚洲欧美一区二区三区国产精品 | 亚洲欧美日韩国产手机在线 | 欧美一区二区三区视频免费播放| 粉嫩嫩av羞羞动漫久久久| 视频一区国产视频| 亚洲欧美日韩系列| 久久色.com| 在线成人av网站| 91色视频在线| 国产99久久久久| 九九热在线视频观看这里只有精品| 亚洲视频一二三区| 久久婷婷国产综合国色天香| 欧美午夜在线观看| k8久久久一区二区三区| 国产一区在线看| 奇米一区二区三区| 日韩精彩视频在线观看| 一区二区成人在线| 亚洲女女做受ⅹxx高潮| 国产精品视频yy9299一区| 精品国偷自产国产一区| 日韩一区二区三区视频在线观看 | 欧美大白屁股肥臀xxxxxx| 欧美伊人精品成人久久综合97 | 国产精品一卡二| 久久超级碰视频| 麻豆91精品91久久久的内涵| 日韩精品一区第一页| 亚洲mv大片欧洲mv大片精品| 亚洲激情av在线| 一区二区三区蜜桃| 伊人色综合久久天天人手人婷| 亚洲精品亚洲人成人网| 亚洲黄色av一区| 亚洲妇女屁股眼交7| 亚洲香蕉伊在人在线观| 亚洲国产精品久久艾草纯爱| 亚洲国产视频在线| 亚洲电影欧美电影有声小说| 亚洲一区自拍偷拍| 五月婷婷综合激情| 免费黄网站欧美| 国产一区二区不卡老阿姨| 国内精品免费**视频| 国产精品一区2区| 成人18视频在线播放| av网站免费线看精品| 99re免费视频精品全部| 日本久久一区二区三区| 欧美性色综合网| 欧美一级国产精品| 国产欧美日韩卡一| 亚洲精品视频免费观看| 亚洲国产精品视频| 精品在线免费视频| 成人教育av在线| 欧洲激情一区二区| 精品日韩一区二区三区| 国产精品国产三级国产专播品爱网| 亚洲欧美日韩中文播放| 日本欧美一区二区在线观看| 国产美女精品人人做人人爽| 91在线你懂得| 91精品中文字幕一区二区三区| 26uuu国产电影一区二区| 国产精品嫩草影院av蜜臀| 亚洲主播在线观看| 久草中文综合在线| 91行情网站电视在线观看高清版| 欧美精品丝袜久久久中文字幕| 久久久久国产一区二区三区四区 | 日韩av网站在线观看| 狠狠色伊人亚洲综合成人| 不卡视频免费播放| 日韩一级二级三级| 国产精品成人在线观看| 日本不卡高清视频| 91麻豆精品一区二区三区| 欧美成人三级在线| 亚洲综合视频在线| 国产成都精品91一区二区三| 欧美体内she精高潮| 中文字幕欧美日韩一区| 日韩精品欧美成人高清一区二区| 高清视频一区二区| 欧美一区二区三区四区高清| 亚洲美女视频在线观看| 国产精品综合网| 日韩欧美在线综合网| 亚洲午夜在线观看视频在线| 丰满白嫩尤物一区二区| 日韩视频国产视频| 午夜精品成人在线视频| 91欧美一区二区| 国产喷白浆一区二区三区| 日本不卡一二三| 欧美日韩免费视频| 亚洲免费看黄网站| 成人av网站在线| 久久在线免费观看| 免费高清在线一区| 3d成人动漫网站| 亚洲国产综合人成综合网站| 99久久99久久精品国产片果冻 | 精品欧美一区二区三区精品久久 | 中文字幕日韩一区二区| 久久国内精品视频| 日韩一级精品视频在线观看| 亚洲无人区一区| 欧美亚洲尤物久久| 亚洲最大成人网4388xx| 一本色道综合亚洲| 亚洲欧美中日韩| 91猫先生在线| 亚洲精品乱码久久久久| 99久久99久久精品免费看蜜桃| 亚洲国产精华液网站w| 国产精品一区二区不卡| 日本一区二区在线不卡| 成人开心网精品视频| 国产精品福利影院| 99九九99九九九视频精品| 综合久久久久久|