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

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

?? analyze.c

?? 計費部分源程序。我認為該軟件極好
?? C
?? 第 1 頁 / 共 3 頁
字號:
	/*(8).應被封鎖的IP包數據文件名稱,BlockIpDataFile   因為有可能仍有一些數據傳輸.*/
	fgets(str,150,fptr);
	GetOneField(str,BlockIpDataFile);

	/*(9).保存全局變量CurTimeID的文件名稱,CurTimeIDFile*/
	fgets(str,150,fptr);
	GetOneField(str,CurTimeIDFile);
	
	/*得到DLPI設備名稱,供lowlevel.c文件使用*/      
/*
	fgets(str,150,fptr);
	GetOneField(str,DLPIDevice);
*/
	fclose(fptr);

	/*讀取網段文件*/
printf("read net part file..\n");
	ReadNetPartFile();
	/*讀取用戶帳戶文件*/
printf("read user account file.\n");
	ReadUserListFromFile(UserFile);
}

/*
從網段列表文件中生成網端地址列表
該文件格式:Net Address|net mask|type
type = 0,主機
type = 1,網絡
參數:netPartNo---網段號,filenName----列表文件名
*/
int ReadNetPartListFromFile(int netPartNo,char* fileName)
{
	FILE* fptr;
	char str[150];
	char* str1;
	char addr[30];
	char result[50];
	InternalNetType* netPtr;

	if ((fptr = fopen(fileName,"r")) == NULL)
	{
		PrintError("Don't Open Internal File %s.\n",fileName);
		return -1;
	}
	while (!feof(fptr))
	{
		fgets(str,150,fptr);
		if (feof(fptr))
			break;
		netPtr = malloc(sizeof(InternalNetType));
		if (netPtr == NULL)
		{
			PrintError("Noe enough memory in GrowInternalNetListFromFile().\n");
			fclose(fptr);
			return -1;
		}
		str1 = GetOneField(str,addr);
		TransIpAddress(0,addr,&(netPtr->netAddress));
		str1 = GetOneField(str1,addr);
		TransIpAddress(0,addr,&(netPtr->netMask));
		str1 = GetOneField(str1,result);
		netPtr->type = atoi(result);/*以后可能要從文件中讀取*/
		netPtr->flag = 1;/*以后可能要從文件中讀取*/
		netPtr->next = NetPartList[netPartNo];
		NetPartList[netPartNo] = netPtr;
	}
	fclose(fptr);
}
/*
將網段地址列表寫入一個文件中
*/
int WriteInternalNetListToFile(int netPartNo,char* fileName)
{
	FILE* fptr;
	char addr[30];
	char addr1[30];
	InternalNetType* netPtr;

	if ((fptr = fopen(fileName,"w")) == NULL)
	{
		PrintError("Don't Open Internal File %s.\n",fileName);
		return -1;
	}
	netPtr = NetPartList[netPartNo];
	while (netPtr)
	{
		TransIpAddress(1,addr,&(netPtr->netAddress));   
		TransIpAddress(1,addr1,&(netPtr->netMask));     
		fprintf(fptr,"%s|%s|%d\n",addr,addr1,netPtr->type);
		netPtr = netPtr->next;
	}
	fclose(fptr);
}

/*
根據所給的IP地址和網段鏈表的表頭,在列表中查找是否有匹配的網絡或主機
若未找到,則返回NULL
*/
InternalNetType* FindNetPartList(InternalNetType* netPartHead,struct in_addr addr)
{
	InternalNetType* netPtr;
	
	netPtr = netPartHead;
	while (netPtr)
	{
		if (netPtr->type ==0)
		{/*為網絡*/
			if ((addr.s_addr&(netPtr->netMask.s_addr)) == netPtr->netAddress.s_addr)
				return netPtr;
		}
		else
		{/*為主機*/
			if (addr.s_addr == netPtr->netAddress.s_addr)
				return netPtr;
		}
		netPtr = netPtr->next;
	}
	return NULL;            
}
/*
讀取網段文件,生成網段鏈表
NetPart 文件格式:netPartNo|fileName|netPartName
netPartNo:網段號
fileName:該網段地址列表文件
netPartName:網段名
*/
void ReadNetPartFile()
{
	int i;
	FILE* fptr,fptr1;
	char str[150];
	char fileName[100];
	char result[30],* startField;
	int netPartNo;

	for (i = 0;i < NET_PART_NUM; i++)
			NetPartList[i] = NULL;
		
	if (NET_PART_NUM <= 1)
		return;

	if ((fptr = fopen(NetPartFile,"r")) == NULL)
	{
		PrintError("don't open net part file %s\n",NetPartFile);
		return;
	}
	while (!feof(fptr))
	{
		fgets(str,150,fptr);
		if (feof(fptr))
			break;
		/*得到網段號*/
		startField = GetOneField(str,result);
		netPartNo = atoi(result);
		if ((netPartNo < 0) || (netPartNo >= NET_PART_NUM))
			continue;
		/*得到文件名*/
		startField = GetOneField(startField,fileName);
		/*得到網段名字符串*/
		startField = GetOneField(startField,NetPartName[netPartNo]);
		/*打開網段地址列表文件*/
		ReadNetPartListFromFile(netPartNo,fileName);
	}
}
/*
判斷給定的IP地址在哪個網段中
判斷時,查詢次序是由大的網段號到小的網段號,所以NET_PART_1為缺省網段,即當查不到網段號時,就將該網段
設置為NET_PART_1,因此該網段最好為"國外網段",因為"國外網段"的號最多,無法判斷
在同一網段列表中的判斷次序為由后向前.
*/
int GetNetPartNo(struct in_addr ip)
{
	int i;

	for (i = NET_PART_NUM - 1; i >= 0;i++)
	{
		if (FindNetPartList(NetPartList[i],ip) != NULL)
			return i;
	}
	return NET_PART_1;/*缺省返回第一個網段號*/
}

/*
從一個字符串中得到一個用戶結構指針,若成功返回指針,否則返回NULL
若falg ==0,則字符串格式:userID|userName|userPassword|groupID|remanData|level|flag
若falg ==1,則字符串格式:userID|userName|userPassword|groupID|remainData|level|flag|address Num|Address Type|Ip or Net Address|Net Mask|....
address num:為后面有幾個地址,每次地址列表增加個數不能大于5,因此Address Num <= 5
若falg ==2,則字符串格式:userID|userName|userPassword|groupID|remanData|level|addUserDate|flag
*/
UserType* GetOneUserFromStr(char* str,int flag)
{
	static UserType tempUser;
	static UserType* tempUserPtr = &tempUser;
	char result[50];
	char* fieldStart;

	/*1.得到userID*/
	fieldStart = GetOneField(str,result);
	tempUser.userID = atoi(result);
	/*2.得到userName*/
	fieldStart = GetOneField(fieldStart,result);
	/*3.得到userPassword*/
	fieldStart = GetOneField(fieldStart,result);
	/*4.得到groupID*/
	fieldStart = GetOneField(fieldStart,result);
	tempUser.groupID = atoi(result);

	return tempUserPtr;
}

/* 
根據用戶ID,計算該用戶在用戶hash表中的索引
返回值為:索引值
*/
int CalcUserIndex(int userID)
{
	return userID%USER_HASH_LEN;
}
/*
通過用戶ID,在用戶列表中查找一個用戶,若未找到,返回NULL
*/
UserType* FindUserByID(int userID)
{
	int index;
	UserType* userPtr;

	index = CalcUserIndex(userID);
	userPtr = UserAccount[index];
	while (userPtr != NULL)
		if (userPtr->userID == userID)
			return userPtr;
		else userPtr = userPtr->nextInHash;
	return NULL;
}
/*
生成一個用戶記錄,若成功返回指針,否則返回NULL
*/
UserType* GrowOneUser(UserType* userSrc)
{
	UserType* userDst;

	if ((userDst = (UserType*)malloc(sizeof(UserType))) == NULL)
	{
		PrintError("not enough memory!\nIn GrowOneUser()\n");
		return NULL;
	}
	memcpy(userDst,userSrc,sizeof(UserType));
	return userDst;
}


/*
在用戶HASH表中增加一個用戶
注意:在目前實現中,為檢查是否有帳戶重復現象,所以在調用本函數前,應調用
	FindUserByID()和FindUserByName()函數進行判斷
*/
int AddOneUser(UserType* user)
{
	int index;
	UserType* userPtr;
	
	/*加入HASH表*/
	index = CalcUserIndex(user->userID);
	user->nextInHash = UserAccount[index];

	if (UserAccount[index])
		UserAccount[index]->prevInHash = user;
	UserAccount[index] = user;
	/*鍵入整個鏈表*/
	if (!UserHead)
	{/*當前鏈表為空*/
		UserHead = UserTail = user;
	}
	else
	{
		user->prevInList = UserTail;
		UserTail->nextInList = user;
		UserTail = user;
	}
	
	return 1;
}
/*
將用戶列表從一個文件中讀出
字符串格式:userID|userName|userPassword|groupID|remanData|level|addUserDate|flag|address Num|Address Type|Ip or Net Address|Net Mask|....
address num:為后面有幾個地址,每次地址列表增加個數不能大于5,因此Address 
*/
int ReadUserListFromFile(char* fileName)
{
	FILE* fptr;
	char str[150];
	UserType* user,*user1;

	if ((fptr = fopen(fileName,"r")) == NULL)
	{
		PrintError("Not Found User File:%s.\n",fileName);
		exit(-1);
	}

	while (!feof(fptr))
	{
		fgets(str,150,fptr);
		if (feof(fptr))
			break;
		/*1.根據字符串得到一個用戶記錄*/
		user = GetOneUserFromStr(str,2);
		if (user)
		{
			/*2.判斷相應的用戶ID是否已被使用*/
			user1 = FindUserByID(user->userID);
			if (user1)
			{
				PrintError("This User Alway exist!UserID = %d.\n",user->userID);
				continue;
			}
			/*4.生成一個新記錄*/
			user1 = GrowOneUser(user);
			if (user1)
			{
				/*5.加入到用戶鏈表中*/
				AddOneUser(user1);
			}
		}
	}
	fclose(fptr);
}

/*
保存一天的數據量,本函數將一天的數據存入統計文件中.
該統計文件的構成:
1.名稱:公共路徑/groupID/userID.sum
2.大小:12*32*SumDataSize
12-----指12個月,每個月1行
32-----每個月最多31天,此外第0個元素為一個月的總數
3.該文件為二進制文件
4.該文件在增加用戶時創建
5.該文件在刪除用戶時,被移到delete目錄中
*/
void SaveOneDayData()
{
	UserType* user = UserHead;
	FILE * fptr;
	char fileName[100];
	SumDataType data,*dataPtr = &data;
	int i,j;

	while (user)
	{
		if (user->change)
		{/*數據發生變化*/
			sprintf(fileName,"%s%d/%d.%s",PATH,user->groupID,user->userID,SumSuffix);
			if ((fptr = fopen(fileName,"rb+")) == NULL)
			{
				PrintError("don't open file %s\n",fileName);
				continue;
			}
			/*1.修改當天的數據*/
			/*注意:以后可用將*32改為向左移5位*/
			/*移動文件指針到相應位置*/
			fseek(fptr,((CurrentMonth-1)*32 + CurrentDay)*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];
				}
			/*重新定位*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品一区二区三区中文字幕| 91精品黄色片免费大全| 国产欧美日韩三级| 成人妖精视频yjsp地址| 久久久国产精品午夜一区ai换脸| 国产精品一色哟哟哟| 中文字幕第一区综合| 91在线播放网址| 亚洲精品国产精品乱码不99| 色天使久久综合网天天| 亚洲国产日韩在线一区模特 | 国产九色精品成人porny| 亚洲精品一区二区三区99| 国产精品一区专区| 日韩一区在线播放| 色久综合一二码| 五月综合激情日本mⅴ| 2024国产精品视频| 99精品国产视频| 五月婷婷久久综合| 久久久噜噜噜久久中文字幕色伊伊 | 日本aⅴ亚洲精品中文乱码| 欧美成人精品高清在线播放| 成人高清视频在线| 亚洲成人精品影院| 久久久久久久综合日本| 欧美午夜精品久久久久久超碰| 欧美96一区二区免费视频| 久久久久久久综合日本| 欧美午夜片在线观看| 国产乱码精品1区2区3区| 亚洲五月六月丁香激情| 国产亲近乱来精品视频| 欧美午夜寂寞影院| 成a人片国产精品| 亚洲电影你懂得| 欧美激情一区二区三区全黄| 91麻豆精品国产91久久久使用方法| 成人亚洲精品久久久久软件| 青青草97国产精品免费观看无弹窗版| 中文字幕不卡在线播放| 欧美夫妻性生活| 丁香婷婷综合激情五月色| 午夜电影一区二区| 国产精品视频看| 91精品国产高清一区二区三区| 粗大黑人巨茎大战欧美成人| 老司机精品视频线观看86| 亚洲女同女同女同女同女同69| 欧美va日韩va| 欧美视频一二三区| 成人免费高清视频| 美女国产一区二区| 亚洲自拍都市欧美小说| 日本一二三四高清不卡| 日韩午夜激情视频| 欧美三区在线视频| 91免费看片在线观看| 国产一区二区调教| 蜜臀国产一区二区三区在线播放| 亚洲欧美二区三区| 中文字幕在线不卡一区| 国产欧美日韩另类一区| 久久综合九色综合欧美98| 91精品国产欧美日韩| 欧美综合在线视频| 色呦呦日韩精品| 92精品国产成人观看免费| 国产91高潮流白浆在线麻豆 | 99riav久久精品riav| 国产99久久久国产精品免费看| 麻豆精品一二三| 另类小说一区二区三区| 麻豆91在线播放免费| 美国三级日本三级久久99| 美女视频黄 久久| 久久精品国产99国产精品| 日韩精品乱码av一区二区| 亚洲一二三四在线| 亚洲第四色夜色| 午夜激情一区二区三区| 视频在线在亚洲| 秋霞成人午夜伦在线观看| 日本中文一区二区三区| 秋霞午夜av一区二区三区| 老司机免费视频一区二区三区| 精品在线观看视频| 国产精品69毛片高清亚洲| 国产高清不卡一区二区| 99久久国产免费看| 欧美日韩中文字幕一区| 日韩网站在线看片你懂的| 欧美成人精品1314www| 久久精品一区四区| 亚洲激情在线激情| 日韩影院在线观看| 国产麻豆精品一区二区| 91在线国内视频| 欧美日韩大陆在线| 久久综合99re88久久爱| 综合久久综合久久| 日本一道高清亚洲日美韩| 国产精选一区二区三区| av亚洲精华国产精华| 欧美剧情片在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品美女久久久久aⅴ国产馆| 亚洲欧美区自拍先锋| 午夜影院久久久| 精东粉嫩av免费一区二区三区 | 99精品国产99久久久久久白柏| 欧美午夜精品电影| 久久久亚洲精品石原莉奈| 中文字幕一区二区三区色视频| 亚洲国产另类av| 国产美女精品在线| 在线一区二区三区| 精品国产露脸精彩对白| 亚洲欧美另类图片小说| 久久99久久久久久久久久久| 91小视频免费观看| 精品国产电影一区二区| 亚洲猫色日本管| 激情图区综合网| 91成人在线免费观看| 久久精品综合网| 日韩激情视频在线观看| aaa亚洲精品| 久久综合九色综合欧美98| 亚洲一区二区三区四区中文字幕| 国产资源精品在线观看| 欧美视频一区二区在线观看| 亚洲国产成人午夜在线一区| 日本美女一区二区| 色视频成人在线观看免| 国产欧美一区二区精品性色超碰 | 欧美色老头old∨ideo| 中文字幕精品一区二区三区精品| 日韩电影免费在线看| 91精品福利视频| 欧美国产精品一区二区| 蜜臀精品一区二区三区在线观看| 91成人看片片| 亚洲精品免费一二三区| 成人免费毛片片v| 精品盗摄一区二区三区| 五月婷婷激情综合网| 在线免费观看一区| 日韩一区中文字幕| 国产91精品一区二区麻豆亚洲| 精品成人一区二区| 奇米精品一区二区三区在线观看| 色综合久久66| 一个色在线综合| 91在线一区二区| 一区二区三区中文字幕在线观看| 福利一区二区在线观看| 久久久久久一二三区| 久久不见久久见免费视频1| 日韩精品在线一区| 麻豆久久一区二区| 日韩一级成人av| 精品一区精品二区高清| 精品久久久久久久人人人人传媒 | 午夜激情综合网| 欧美视频在线一区二区三区| 亚洲一区二区精品久久av| 在线一区二区观看| 亚洲一区二区高清| 777欧美精品| 日韩中文字幕区一区有砖一区 | www.亚洲色图| 中文字幕一区免费在线观看 | 国产成人精品1024| 国产精品视频九色porn| av一区二区不卡| 亚洲国产精品久久一线不卡| 欧美日韩国产综合一区二区| 婷婷综合久久一区二区三区| 欧美一级一区二区| 久久99精品久久只有精品| 国产拍欧美日韩视频二区| 成人免费看片app下载| 樱桃视频在线观看一区| 欧美巨大另类极品videosbest| 蜜臀va亚洲va欧美va天堂| 国产亚洲精久久久久久| 91在线观看视频| 五月天一区二区| 久久久久亚洲蜜桃| 99re成人精品视频| 午夜视频在线观看一区二区| 欧美刺激脚交jootjob| 国产91露脸合集magnet | 欧美日韩一区不卡| 免费在线观看一区二区三区| 国产亚洲女人久久久久毛片| 色香色香欲天天天影视综合网| 五月天激情综合| 久久久99精品免费观看|