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

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

?? analyze.c

?? 計費部分源程序。我認為該軟件極好
?? C
?? 第 1 頁 / 共 3 頁
字號:
			fseek(fptr,-SumDataSize,SEEK_CUR);
			/*再寫入*/
			fwrite(dataPtr,SumDataSize,1,fptr);

			/*2.修改月總數數據*/
			/*移動文件指針到相應位置*/
			fseek(fptr,(CurrentMonth-1)*32*SumDataSize,SEEK_SET);
			/*讀取文件中的數據*/
			fread(dataPtr,SumDataSize,1,fptr);
			/*修改數據*/
			for (i = 0; i < TIME_STAGE_NUM; i++)
				for (j = 0; j < NET_PART_NUM; j++)
				{
					data.inPackets[i][j] += user->data.inPackets[i][j];
					data.inPacketsBytes[i][j] += user->data.inPacketsBytes[i][j];
					data.outPackets[i][j] += user->data.outPackets[i][j];
					data.outPacketsBytes[i][j] += user->data.outPacketsBytes[i][j];
				}
			/*重新定位*/
			fseek(fptr,-SumDataSize,SEEK_CUR);
			/*再寫入*/
			fwrite(dataPtr,SumDataSize,1,fptr);

			fclose(fptr);
			/*將數據清0*/
			memset(&user->data,0,SumDataSize);
		}
		user = user->nextInList;
	}
}
/*
改變當前的日期或時間段
字符串格式:1|month|day
	    2|time stage
若第一個域為1,則表明是日期
若第一個域為2,則表明是時間段
flag==0,保存進入數據
flag== 1,保存外出數據
*/
void ChangeTimeStageOrDate(char* str)
{
	char result[20],*startField;
	int flag;
	int month,day,timeStage;
	static int state = 0;

	/*得到標識*/
	startField = GetOneField(str,result);
	flag = atoi(result);
	switch (flag)
	{
		case 1:/*日期發生了變化*/
			startField = GetOneField(startField,result);
			month = atoi(result);
			startField = GetOneField(startField,result);
			day = atoi(result);
			if (state == 0)
			{/*若是第一次調用本函數,則不保存數據,因為數據文件的第一行一定是日期行*/
				state = 1;
				CurrentMonth = month;
				CurrentDay = day;
				return;
			}

			if ((CurrentMonth != month) || (CurrentDay != day))
			{
				/*時間發生變化,將數據保存*/
				SaveOneDayData();
				CurrentMonth = month;
				CurrentDay = day;
			}
			break;

		case 2:/*時間段發生了變化*/
			startField = GetOneField(startField,result);
			timeStage = atoi(result);
			if ((timeStage >= TIME_STAGE_1) && (timeStage < TIME_STAGE_NUM))
				CurrentTimeStage = timeStage;
			break;
	}
}
/*
分析IP流量細節文件
IP流量細節文件格式:0 or 1|userID|source Ip|destination Ip|length
0表示進入,1表示外出
*/
void AnalyzeIpDataFile()
{
	FILE* fptr;
	char oneStr[200];
	char result[30];
	char* startField;
	int netPartNo;
	struct in_addr srcIp,dstIp;
	struct in_addr *srcIpPtr = &srcIp,*dstIpPtr = &dstIp;
	int inOut,userID;
	long length;
	UserType* user;

	if ((fptr = fopen(IpDataFile,"r")) == NULL)
	{/*正常傳入的IP包數據細節文件指針*/
		PrintError("Don't open file:%s.\n",IpDataFile);
		return;
	}
	while (!feof(fptr))     
	{
		fgets(oneStr,200,fptr);
		if (feof(fptr))
			break;
		if (oneStr[0] == '*')
		{/*表明這一行為日期或時間段控制信息*/
			ChangeTimeStageOrDate(&oneStr[1]);
			continue;
		}
		/*得到方向0---傳入,1---傳出*/
		startField = GetOneField(oneStr,result);
		inOut = atoi(result);
		/*得到用戶ID*/
		startField = GetOneField(startField,result);
		userID = atoi(result);
		/*得到源IP地址*/
		startField = GetOneField(startField,result);
		TransIpAddress(0,result,srcIpPtr);
		/*得到目的IP地址*/
		startField = GetOneField(startField,result);
		TransIpAddress(0,result,dstIpPtr);
		/*得到長度*/
		startField = GetOneField(startField,result);
		length = atol(startField);

		/*修改內存中的數據*/
		user = FindUserByID(userID);
		if (user != NULL)
		{
			netPartNo = GetNetPartNo(srcIp);
			if (inOut == 0)
			{/*進入包*/
				#ifdef ZOOM-OP
				length *= ZoomRatio[0];
				#endif
				user->data.inPackets[CurrentTimeStage][netPartNo]++;
				user->data.inPacketsBytes[CurrentTimeStage][netPartNo] += length;
			}
			else
			{/*外出包*/
				#ifdef ZOOM-OP
				length *= ZoomRatio[1];
				#endif
				user->data.outPackets[CurrentTimeStage][netPartNo]++;
				user->data.outPacketsBytes[CurrentTimeStage][netPartNo] += length;
			}
			user->change = 1;/*數據發生變化*/
		}
	}               
}
/*
分析用戶登陸細節文件
*/
void AnalyzeLoginDataFile()
{
	FILE* fptr,*userFptr,*sumFptr;
	int i;
	char oneStr[200],*logtime;
	char userIDStr[20];
	char groupIDStr[20];
	int userID;
	long inPackets,inPacketsBytes;
	long outPackets,outPacketsBytes;
	long loginTime,logoutTime;
	char str1[50],*str2,*dataPtr;
	char fileName[150];
	char logoutTimeStr[30];
	struct tm * now,*now1;
	int month,day;
	SumDataType sumData,*sumDataPtr = &sumData;
	UserType* user;

	/*1.處理傳入傳出總體數據文件*/
	strcat(IpSumDataFile,".tmp");

	if ((fptr = fopen(IpSumDataFile,"r")) == NULL)
	{/*正常傳入的IP包數據總體文件指針*/
		PrintError("Don't open file:%s.\n",IpSumDataFile);
		exit(-1);
	}
	while (!feof(fptr))     
	{
		fgets(oneStr,200,fptr);
/*
printf("\nstr = %s",oneStr);
*/
		if (feof(fptr))
			break;
		/*1.得到上述各個數據inPackets|inPacketsBytes|outPackets|outPacketsBytes|logout Time*/
		str2 = GetOneField(oneStr,str1);/*timeID*/
		str2 = GetOneField(str2,userIDStr);/*user id*/
		userID = atoi(userIDStr);

		user = FindUserByID(userID);

		if (!user)
			continue;
		else sprintf(groupIDStr,"%d",user->groupID);

		dataPtr = GetOneField(str2,str1);/*ip address*/
		str2 = GetOneField(dataPtr,str1);/*inPackets*/
		inPackets = atol(str1);
		str2 = GetOneField(str2,str1);/*inpackets bytes*/
		inPacketsBytes = atol(str1);
		str2 = GetOneField(str2,str1);/*outPackets*/
		outPackets = atol(str1);
		logtime = GetOneField(str2,str1);/*outpackets bytes*/
		outPacketsBytes = atol(str1);
		#ifdef ZOOM-OP
		inPackets *= ZoomRatio[0];
		inPacketsBytes *= ZoomRatio[0];
		outPackets *= ZoomRatio[1];
		outPacketsBytes *= ZoomRatio[1];
		#endif
		str2 = GetOneField(logtime,str1);/*login time*/
		loginTime = atol(str1);
		str2 = GetOneField(str2,str1);/*logout time*/
		logoutTime = atol(str1);
		sprintf(fileName,"%s/%s%s",groupIDStr,userIDStr,SumSuffix);
		if ((sumFptr = fopen(fileName,"rb+")) == NULL)
		{/*該文件一定存在,因為在增加用戶時創建了該文件*/
			continue;
		}
		/*存入到用戶細節文件中*/
		sprintf(fileName,"%s/%s",groupIDStr,userIDStr);
		if ((userFptr = fopen(fileName,"a+")) == NULL)
		{
			PrintError("Open File Error:%s.in MaintainSumDataFile().\n",userIDStr);
			continue;
		}

		/*處理用戶統計文件*/
		/*1。得到月份*/
		now = localtime(&logoutTime);
		sprintf(logoutTimeStr,"%d.%d.%d %d:%d:%d",
			now->tm_year,now->tm_mon+1,now->tm_mday,now->tm_hour,now->tm_min,now->tm_sec);
		month = now->tm_mon;
		day = now->tm_mday;
		now1 = localtime(&loginTime);
		/*給logtime賦值實際上就是修改oneStr中的后兩個域值*/
		#ifdef ZOOM-OP
		sprintf(dataPtr,"%ld|%ld|%ld|%ld|%d.%d.%d %d:%d:%d|%s\n",
			inPackets,inPacketsBytes,outPackets,outPacketsBytes,
			now1->tm_year,now1->tm_mon+1,now1->tm_mday,now1->tm_hour,now1->tm_min,now1->tm_sec,logoutTimeStr);
		#else
		sprintf(logtime,"%d.%d.%d %d:%d:%d|%s\n",
			now1->tm_year,now1->tm_mon+1,now1->tm_mday,now1->tm_hour,now1->tm_min,now1->tm_sec,logoutTimeStr);
		#endif
		fprintf(userFptr,oneStr);
		fclose(userFptr);
		
/*
printf("userid = %s.\n",userIDStr);
printf("inPackets=%ld.\n",inPackets);
printf("logout time = %ld.\n",logoutTime);
printf("filename = %s.\n",fileName);
*/
		
		/*2。讀取該用戶當月數據*/
		/*將該用戶當月數據增加后,再存入*/
/*
printf("month = %d,day = %d.\n",month,day);
*/
		fseek(sumFptr,SumDataSize*month*32,SEEK_SET);
		fread(sumDataPtr,SumDataSize,1,sumFptr);
		/*若按照IP包流量來分析,則關于流量部分不必在本部分處理,但連接時間則要處理*/
		#ifndef ANALYZE_BY_IP
		sumData.inPackets[0][0] += inPackets;
		sumData.inPacketsBytes[0][0] += inPacketsBytes;
		sumData.outPackets[0][0] += outPackets;
		sumData.outPacketsBytes[0][0] += outPacketsBytes;
		#endif
		sumData.connectTime += (logoutTime - loginTime); 

		fseek(sumFptr,-SumDataSize,SEEK_CUR);
		fwrite(sumDataPtr,SumDataSize,1,sumFptr);
		/*將該用戶當日數據增加后,再存入*/
		fseek(sumFptr,SumDataSize*(month*32 + day),SEEK_SET);
		fread(sumDataPtr,SumDataSize,1,sumFptr);
		/*若按照IP包流量來分析,則關于流量部分不必在本部分處理,但連接時間則要處理*/
		#ifndef ANALYZE_BY_IP
		sumData.inPackets[0][0] += inPackets;
		sumData.inPacketsBytes[0][0] += inPacketsBytes;
		sumData.outPackets[0][0] += outPackets;
		sumData.outPacketsBytes[0][0] += outPacketsBytes;
		#endif
		sumData.connectTime += (logoutTime - loginTime); 

		fseek(sumFptr,-SumDataSize,SEEK_CUR);
		fwrite(sumDataPtr,SumDataSize,1,sumFptr);

		fclose (sumFptr);
		/*生成月統計數據文件*/
	}
	fclose(fptr);
	/*將該文件刪除*/
	sprintf(str1,"rm -f %s ",IpSumDataFile);
	system(str1);
}
/*
轉儲總體文件以外的文件
方法:將文件名加上當天的日期
*/
void MaintainDataFile()
{
	char command[150];
	char today[20];
	struct tm *now;
	time_t day;

	/*得到當前日期*/
	time(&day);
	now = localtime(&day);
	sprintf(today,"%d-%d",now->tm_mon+1,now->tm_mday);

	/*將數據文件改為以當前日期為前綴的文件*/

	/*正常IP包數據控制文件名稱*/
	sprintf(command,"mv -f %s.tmp backup/%s-%s",IpDataControlFile,today,IpDataControlFile);
	system(command);
	/*正常傳入傳出的IP包數據細節文件名稱*/
	sprintf(command,"mv -f %s.tmp backup/%s-%s",IpDataFile,today,IpDataFile);
/*	system(command);*/ /*liu change 980703*/
	/*領導IP包數據文件名稱*/
	sprintf(command,"mv -f %s.tmp backup/%s-%s",LeadIpDataFile,today,LeadIpDataFile);
	system(command);
	/*應被封鎖的IP包數據文件名稱,因為有可能仍有一些數據傳輸.*/
	sprintf(command,"mv -f %s.tmp backup/%s-%s",BlockIpDataFile,today,BlockIpDataFile);
	system(command);
}

main()
{
	char command[150];

	/*初始化*/
printf("\n\nnow analyze start\n");
printf("init system...\n");
	InitVar();
printf("init system completed..\n");

	/*將用戶帳戶文件保存備份*/
printf("save user account file...\n");
	sprintf(command,"cp %s %s.bak",UserFile,UserFile);
	system(command);
	/*分析IP流量細節文件*/
	#ifdef ANALYZE_BY_IP
printf("analyze ipdata.dat file...\n");
	AnalyzeIpDataFile();
	#endif
	/*將數據文件轉儲*/
printf("mv data file...\n");
	MaintainDataFile();
	/*分析輸入和輸出的總體文件,然后將其刪除*/
printf("analyze ipsumdata.dat file..\n");
	AnalyzeLoginDataFile();
printf("analyze ipsumdata.dat file completed..\n");

	/*檢查系統中是否有僵尸CGI進程,有將其KILL掉*/
	/*??????????*/
	/*檢查系統中4個消息隊列中是否有不能響應的消息,有則將其刪除*/
	/*????????????*/
	/**/
printf("analyze finished\n\n\n");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久| 欧美色窝79yyyycom| 色综合久久天天| 日韩一区二区三区视频在线| 一色屋精品亚洲香蕉网站| 欧美aaaaaa午夜精品| 亚洲精品一线二线三线| 不卡高清视频专区| 欧美理论片在线| 中文字幕乱码一区二区免费| 日本亚洲一区二区| 日本精品视频一区二区三区| 中文字幕 久热精品 视频在线| 日韩福利视频导航| 色欧美乱欧美15图片| 国产精品污污网站在线观看| 亚洲一区二区三区四区的| 国产成人小视频| 日韩免费高清av| 免费人成在线不卡| 欧美日本国产视频| 亚洲综合精品久久| 色综合中文字幕| 国产精品久久久久久久蜜臀| 国产精品一线二线三线| 日韩美女在线视频| 日本不卡123| 91精品欧美一区二区三区综合在 | 国产在线精品一区二区夜色| 欧美人狂配大交3d怪物一区| 亚洲国产视频一区| 色国产综合视频| 一区二区三区资源| 一本大道综合伊人精品热热| 国产精品久久毛片a| 成人免费av在线| 国产精品麻豆久久久| 不卡的av在线| 中文字幕综合网| 色综合网色综合| 亚洲精品视频免费观看| 色老头久久综合| 天天综合色天天综合色h| 欧美日韩午夜影院| 青青草原综合久久大伊人精品| 欧美一级黄色片| 精品一区二区影视| 久久亚洲一区二区三区四区| 成人小视频在线观看| ...xxx性欧美| 欧美日韩在线播放三区四区| 日韩电影免费在线观看网站| 精品88久久久久88久久久| 国产成人精品一区二区三区网站观看| 久久蜜桃av一区二区天堂| 成人毛片视频在线观看| 亚洲精品视频在线看| 欧美丰满嫩嫩电影| 狠狠色丁香婷婷综合久久片| 欧美国产精品专区| 在线观看免费视频综合| 蜜桃精品视频在线| 中文字幕欧美日本乱码一线二线| 91色.com| 久久激情五月婷婷| 中文字幕在线不卡国产视频| 欧美日韩国产成人在线91| 国产又黄又大久久| 亚洲精品国久久99热| 日韩欧美久久久| 在线精品亚洲一区二区不卡| 狠狠色丁香久久婷婷综合_中| 成人免费在线视频观看| 91精品国产品国语在线不卡| 大胆亚洲人体视频| 亚洲成av人片在线| 中文字幕精品一区二区精品绿巨人 | 91蜜桃免费观看视频| 日韩高清中文字幕一区| 中文字幕久久午夜不卡| 欧美综合一区二区| 爽好久久久欧美精品| 中文字幕欧美激情| 欧美剧在线免费观看网站| 国产精品综合在线视频| 一区二区三区国产| 国产三级欧美三级| 欧美日韩精品一区二区在线播放| 国产精品资源网| 婷婷综合另类小说色区| 国产精品久久久久三级| 精品久久一区二区三区| 欧美日韩在线一区二区| 欧美午夜在线一二页| 国产91精品欧美| 久久99久久久欧美国产| 亚洲18女电影在线观看| 亚洲视频在线一区观看| 久久综合九色综合97_久久久| 欧美揉bbbbb揉bbbbb| caoporm超碰国产精品| 国产九色精品成人porny| 视频一区二区三区入口| 最新高清无码专区| 中文字幕av一区二区三区高| 精品精品国产高清a毛片牛牛| 精品视频123区在线观看| 日本高清免费不卡视频| jlzzjlzz欧美大全| 成人午夜激情视频| 国产成人在线影院| 国产精品白丝jk白祙喷水网站| 精品一区二区在线看| 久久av老司机精品网站导航| 久久99精品久久久久久国产越南 | 国产最新精品免费| 美女任你摸久久| 丝袜美腿成人在线| 午夜精品免费在线| 日韩中文字幕亚洲一区二区va在线 | 亚洲一区二区综合| 一个色综合网站| 亚洲一区二区视频在线观看| 亚洲图片有声小说| 亚洲成人一二三| 日本不卡不码高清免费观看| 六月丁香综合在线视频| 精品亚洲欧美一区| 国产一区在线视频| 粉嫩aⅴ一区二区三区四区五区| 成人免费观看av| 91福利视频久久久久| 欧美日韩一区二区不卡| 337p亚洲精品色噜噜狠狠| 日韩精品综合一本久道在线视频| 亚洲精品一区二区三区99| 国产午夜精品福利| 国产精品水嫩水嫩| 亚洲黄一区二区三区| 亚洲一区二区三区激情| 蜜桃传媒麻豆第一区在线观看| 老司机午夜精品99久久| 懂色av中文一区二区三区| 91色.com| 精品国产123| 亚洲日本在线a| 美女尤物国产一区| 成人在线视频一区二区| 欧美日韩国产小视频在线观看| 精品久久久久久无| 中文字幕佐山爱一区二区免费| 青青草视频一区| 成人黄页毛片网站| 7777精品伊人久久久大香线蕉的 | 欧美视频精品在线| 日韩一区二区精品在线观看| 国产日韩欧美制服另类| 亚洲精品你懂的| 精品一区二区三区影院在线午夜 | 国产成人综合亚洲网站| 欧美性欧美巨大黑白大战| 26uuu国产在线精品一区二区| 亚洲另类在线制服丝袜| 美女高潮久久久| 色偷偷一区二区三区| 欧美videos中文字幕| 亚洲综合偷拍欧美一区色| 国产在线精品一区在线观看麻豆| 91国模大尺度私拍在线视频| 精品美女在线播放| 亚洲综合图片区| 丰满白嫩尤物一区二区| 6080国产精品一区二区| 亚洲图片激情小说| 国产精品综合av一区二区国产馆| 色哟哟日韩精品| 国产亚洲人成网站| 极品少妇xxxx精品少妇偷拍| 欧美午夜在线一二页| 亚洲欧洲精品天堂一级| 蜜臀91精品一区二区三区| 欧美在线免费视屏| 1024成人网色www| 成人av电影在线网| 国产天堂亚洲国产碰碰| 日本亚洲三级在线| 欧美丰满美乳xxx高潮www| 亚洲va天堂va国产va久| 99国产精品久久| 中文字幕日韩一区| 成人精品亚洲人成在线| 久久亚洲精品国产精品紫薇| 另类人妖一区二区av| 日韩视频永久免费| 日韩成人免费电影| 91精品婷婷国产综合久久| 免费成人av在线| 欧美一二三区在线观看| 美国三级日本三级久久99| 日韩欧美一区在线|