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

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

?? analyze.c

?? 計費部分源程序。我認為該軟件極好
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*****************************************************************************
				用戶數據分析程序
用于分析用戶登陸數據文件,生成每個用戶自己的數據文件。
注意:如果定義了宏ANALYZE_BY_IP,則按照IP流量文件分析數據,否則按照用戶登錄文件分析流量
******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>

#include <sys/param.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/msg.h> 

#include <net/if.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/ip_var.h>
#include <netinet/tcp.h>
#include <netinet/tcpip.h>

#include <signal.h>    

#define PrintError printf

#define WAIT_TIMEOUT 10

/*響應轉儲程序的請求,轉儲程序在每天運行一次*/
#define MAINTAIN_DATA 900/*轉儲數據,將數據文件關閉再從新打開*/
#define MAINTAIN_DATA_FILE_SUCCESS 901/*轉儲數據成功*/

/*輸入輸出消息*/
#define SCS_INMSGKEY 500/*與JF進程進行通訊*/
#define SCS_OUTMSGKEY 400
#define SCS_CGIINMSGKEY 460/*與USER進程進行通訊*/
#define SCS_CGIOUTMSGKEY 450

#define MESSAGE_PRIORITY 0

struct msg_scs {
	long    mtype;
	int     command;
	char    value[200];
};  
char * InitFile="scs_init.file";/*系統初始化讀取的文件名*/

char InternalNetFile[30] = "internalnet.sys";/*內部網段文件名稱,*/
char LeadIpInfoFile[30] = "leadipinfo.sys";/*領導IP信息文件名稱,*/
char IpDataControlFile[30] = "ipdatacontrol.dat";/*正常IP包數據控制文件名稱*/
char IpDataFile[20] = "ipdata.dat";/*出入數據細節文件*/
char IpSumDataFile[30] = "ipsumdata.dat";/*正常傳入傳出的IP包數據總體文件名稱*/
char LeadIpDataFile[30] = "leadipdata.dat";/*領導IP包數據文件名稱*/
char BlockIpDataFile[30]="blockipdata.dat";/*應被封鎖的IP包數據文件名稱,因為有可能仍有一些數據傳輸.*/
char CurTimeIDFile[30] = "CurTimeID.sys";/*保存全局變量CurTimeID的文件名稱,*/

FILE* IpDataControlFptr;/*正常IP包數據控制文件指針*/
FILE* IpDataFptr;/*正常傳入的IP包數據詳細文件指針*/
FILE* IpSumDataFptr;/*正常傳入傳出的IP包總體數據文件指針*/
FILE* LeadIpDataFptr;/*領導IP包數據文件指針*/
FILE* BlockIpDataFptr;/*應被封鎖的IP包數據文件指針,因為有可能仍有一些數據傳輸.*/

struct msg_scs InMessage;/*用于輸入消息*/
struct msg_scs OutMessage;/*用于輸出消息*/

int CGIInMessageID;/*與UMG進程進行通訊的輸入消息標識*/
int CGIOutMessageID;/*與UMG進程進行通訊的輸出消息標識*/
int MyInMessageID;/*輸入消息標識*/
int BackInMessageID;/*輸入消息標識*/
int MyOutMessageID;/*輸出消息標識*/
int BackOutMessageID;/*輸出消息標識*/


char *SumSuffix = ".sum";/*每個用戶月統計文件后綴*/


#define NET_PART_NUM  1/*網絡分為幾個段落,如國內段,國外段,免費段等*/
#define NET_PART_1 0   /*確省段落,一般應為國外網段*/
#define NET_PART_2 1
#define NET_PART_3 2

#define TIME_STAGE_NUM 1 /*每天分為多少個時間段*/
#define TIME_STAGE_1   0 /*時間段1*/
#define TIME_STAGE_2   1 /*時間段2*/
#define TIME_STAGE_3   2 /*時間段3*/
/*
統計數據結構
進入的數據包個數包括:在時間段n內,有網段m進入的包個數
*/
typedef struct _SumDataType
	{
		long inPackets[TIME_STAGE_NUM][NET_PART_NUM];/*進入的數據包個數*/
		long inPacketsBytes[TIME_STAGE_NUM][NET_PART_NUM];/*進入的數據包字節數*/
		long outPackets[TIME_STAGE_NUM][NET_PART_NUM];/*出去的數據包個數*/
		long outPacketsBytes[TIME_STAGE_NUM][NET_PART_NUM];/*出去的數據包字節數*/
		long connectTime;/*連接時間*/
	} SumDataType;

int SumDataSize = sizeof(SumDataType);
/*用戶列表定義*/
#define USER_HASH_LEN 250
typedef struct _UserTYPE
	{
		int userID; /*用戶的標識號,對于每個用戶來說,該值唯一*/
		int groupID;/*用戶的組ID*/
		SumDataType data; /*一天的數據結構*/
		int change;/*是否數據發生了變化*/
		struct _UserTYPE* nextInHash;
		struct _UserTYPE* prevInHash;
		struct _UserTYPE* nextInList;
		struct _UserTYPE* prevInList;
	}UserType;
UserType* UserAccount[USER_HASH_LEN];/*用戶HASH表*/
UserType* UserHead,*UserTail;/*用戶鏈表表頭和表尾*/

int CurrentMonth;/*當前月份*/
int CurrentDay;/*當前日期*/
int CurrentTimeStage;/*當前時間段*/

char PATH[100];/*文件的路徑*/


char *NetPartFile = "system/netpart.sys";/*網段文件*/
char *UserFile = "system/user.file";

/*
網絡或主機地址
*/
typedef struct _InternalNetTYPE
	{
		struct in_addr netAddress;/*內部網的網絡地址*/
		struct in_addr netMask; /*內部網絡的網絡屏蔽碼*/
		int type;/*標識本地址是網絡地址,還是IP地址,0--net address,1--ip address*/
		int flag;/* 該內部網絡的標識*/
		struct _InternalNetTYPE* next;
	}InternalNetType;

InternalNetType* NetPartList[NET_PART_NUM];/*各個網段鏈表的頭指針*/
char NetPartName[NET_PART_NUM][50];/*各個網段的名字,如國內網段,國外網段,免費網段等*/

#ifdef ZOOM-OP
char * ZoomRatioFile = "system/zoomratio.sys";
float ZoomRatio[2] = {1.0,1.0};
#endif
void ReadNetPartFile();

/*
轉換IP地址,從字符串到in_addr結構,或相反
flag = 0, from string to struct
flag = 1, from struct to string
*/
void TransIpAddress(int flag ,char* str,struct in_addr *ip)
{
	int tmp[4];

	if (flag == 0)
	{
		sscanf(str,"%d.%d.%d.%d",&tmp[0],&tmp[1],&tmp[2],&tmp[3]);
		(ip->s_net) = tmp[0];
		(ip->s_host) = tmp[1];
		(ip->s_lh) = tmp[2];
		(ip->s_impno) = tmp[3];
	}
	else
	{
		sprintf(str,"%d.%d.%d.%d",
					ip->s_net,
					ip->s_host,
					ip->s_lh,
					ip->s_impno);
	}
}
/*
從一個字符串中得到第一個域,該域不含空白字符
返回值:為輸入字符串中第一個域后的第一個字符的指針
*/
char* GetOneField(char* str,char* result)
{
	char* ch1,*ch2,*ch3;
	ch1 = str;
	while (*ch1 == ' ' || *ch1 =='\t')
		ch1++;
	ch2 = ch1;
	ch3 = result;
	while ((*ch2 != '|') &&(*ch2 != '#') && (*ch2 != ' ') && (*ch2 != '\t') && (*ch2 != '\n') && (*ch2 != '\r') && (*ch2 != 0))
	{
		*ch3 = *ch2;
		ch2++;
		ch3++;
	}
	*ch3 = 0;
	while ((*ch2 != '|') && (*ch2 != '\0'))
		ch2++;
	ch2++;
	return ch2;
}
/*
初始化消息隊列
本程序中有2個消息隊列,一個消息對列用于得到輸入消息,MyInMessageID
一個消息隊列用于輸出消息,MyOutMessageID
*/
void InitMessage()
{
printf("enter InitMessage..............\n");
	MyInMessageID = msgget(SCS_INMSGKEY, 0777|IPC_CREAT);
	BackInMessageID = MyInMessageID;
	if (MyInMessageID == -1)
	{
		PrintError(" in msgget failed!\n ");
		exit(1);
	}
	MyOutMessageID = msgget(SCS_OUTMSGKEY, 0777|IPC_CREAT);                
	BackOutMessageID = MyOutMessageID;
	if (MyOutMessageID == -1)
	{
		PrintError(" out msgget failed!\n ");
		exit(1);
	}
	CGIInMessageID = msgget(SCS_CGIINMSGKEY, 0777|IPC_CREAT);
	if (CGIInMessageID == -1)
	{
		PrintError(" in msgget failed!CGI In Message\n ");
		exit(1);
	}
	CGIOutMessageID = msgget(SCS_CGIOUTMSGKEY, 0777|IPC_CREAT);                
	if (CGIOutMessageID == -1)
	{
		PrintError(" out msgget failed!CGI OUT MESSGAE\n ");
		exit(1);
	}

}
#ifdef ZOOM-OP
/*
讀取縮放用戶數據的比例文件
*/
void ReadZoomRatioFromFile()
{
	FILE* fptr;
	char str[100];
	float ratio;

	if ((fptr = fopen(ZoomRatioFile,"r")) == NULL)
	{
		PrintError("Don't open zoom ratio file:%s\n",ZoomRatioFile);
		return;
	}
	fgets(str,100,fptr);
	sscanf(str,"%f",&ratio);
	if ((ratio > 0.01) && (ratio < 10.0))
	{
		ZoomRatio[0] = ratio;
	}
	fgets(str,100,fptr);
	sscanf(str,"%f",&ratio);
	if ((ratio > 0.01) && (ratio < 10.0))
	{
		ZoomRatio[1] = ratio;
	}
/*
printf("zoom=%f,%f\n",ZoomRatio[0],ZoomRatio[1]);
*/
}
#endif
void TimeCheck(int signo)
{
	printf("wait message from jf or user,but timeout...\nso ,quit..\n");
	exit(1);
}
/*
初始化變量
*/
void InitVar()
{
	FILE* fptr;
	char str[200];
	char tmp[50];
	int rtn;
	char * ch1,*ch2,*ch3;
	int pid;

	signal(SIGALRM,TimeCheck);
	alarm(WAIT_TIMEOUT);

	#ifdef ZOOM-OP
	ReadZoomRatioFromFile();
	#endif

	InitMessage();

	/*得到本進程的ID號*/
	pid = getpid();

	/*給計費進程發送消息,令計費進程轉儲數據文件*/
printf("Send MAINTAIN_DATA command to jf .\n");
	OutMessage.mtype = pid;
	OutMessage.command = MAINTAIN_DATA;
	MyOutMessageID = BackOutMessageID;
	msgsnd(MyOutMessageID, &OutMessage, sizeof (struct msg_scs),0);

	/*等待計費進程的返回消息,再繼續*/
	MyInMessageID = BackInMessageID;
	rtn = msgrcv(MyInMessageID, &InMessage, sizeof(struct msg_scs), pid, 0); 
printf("Get Message From jf.\n");
	if (rtn <= 0)
	{
		PrintError("Maintain recieve message Error!\n");
		exit(1);
	}
	if (InMessage.command != MAINTAIN_DATA_FILE_SUCCESS)
	{
		PrintError("Maintain recieve message Error FROM JF!command != MAINTAIN_DATA_FILE_SUCCESS\n");
		exit(1);
	}
	/*給用戶管理進程發消息,保存用戶帳戶文件*/
printf("Send command MAINTAIN_DATA to user.\n");
	msgsnd(CGIOutMessageID, &OutMessage, sizeof (struct msg_scs),0);

	/*等待用戶管理進程的返回消息,再繼續*/
	rtn = msgrcv(CGIInMessageID, &InMessage, sizeof(struct msg_scs), pid, 0); 
printf("Get message from user.\n");
	if (rtn <= 0)
	{
		PrintError("Maintain recieve message Error!\n");
		exit(1);
	}
	if (InMessage.command != MAINTAIN_DATA_FILE_SUCCESS)
	{
		PrintError("Maintain recieve message Error FROM USER!command != MAINTAIN_DATA_FILE_SUCCESS\n");
		exit(1);
	}

	alarm(0);

	/*初始化數據文件*/
	/*首先讀取各系統變量的值*/
	if ((fptr = fopen(InitFile,"r")) == NULL)
	{
		printf("Can't open Init File:%s.\nQuit!\n",InitFile);
		fflush(stdout);
		exit(1);
	}


	/*(1).內部網段文件名稱,InternalNetFile*/
	fgets(str,150,fptr);
	GetOneField(str,InternalNetFile);

	/*(2).領導信息文件名稱,LeaderInfoFile*/
	fgets(str,150,fptr);
	GetOneField(str,LeadIpInfoFile);

	/*(3).正常IP包數據控制文件名稱,IpDataControlFile*/
	fgets(str,150,fptr);
	GetOneField(str,IpDataControlFile);

	/*(4).正常傳入傳出的IP包數據細節文件名稱,IpDataFile*/
	fgets(str,150,fptr);
	GetOneField(str,IpDataFile);


	/*(6).正常傳入傳出的IP包數據總體文件名稱,IpSumDataFile*/
	fgets(str,150,fptr);
	GetOneField(str,IpSumDataFile);

	/*(7).領導IP包數據文件名稱,LeaderIpDataFile*/
	fgets(str,150,fptr);
	GetOneField(str,LeadIpDataFile);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品aa毛片| 日韩欧美国产三级| 精品乱人伦小说| 亚洲品质自拍视频| 国产91在线看| 欧美一激情一区二区三区| 亚洲人成网站色在线观看| 国产美女视频一区| 日韩欧美一区二区久久婷婷| 亚洲一二三区不卡| 91麻豆.com| 亚洲欧美在线视频观看| 国产成都精品91一区二区三| 日韩精品一区国产麻豆| 亚洲成a天堂v人片| 91久久精品一区二区| 国产精品成人免费在线| 成人中文字幕电影| 久久精品一二三| 国产揄拍国内精品对白| 日韩欧美国产综合一区| 偷拍一区二区三区| 欧美三级午夜理伦三级中视频| 亚洲免费资源在线播放| www..com久久爱| 中文在线一区二区| 成人免费视频视频| 欧美国产欧美综合| 成人在线一区二区三区| 国产女主播在线一区二区| 国产一区二区三区国产| 国产亚洲精品超碰| 国产精品1024| 亚洲欧美自拍偷拍| 欧美做爰猛烈大尺度电影无法无天| 亚洲色图在线看| 在线免费视频一区二区| 午夜视频一区在线观看| 欧美一区二区国产| 久久精品99久久久| 久久久精品免费网站| 国产九色sp调教91| 亚洲天堂网中文字| 欧美午夜一区二区三区免费大片| 亚洲国产精品久久久久婷婷884| 欧美日本精品一区二区三区| 日本大胆欧美人术艺术动态| 精品久久免费看| 成人精品高清在线| 亚洲精品视频一区二区| 欧美精品自拍偷拍动漫精品| 九九九久久久精品| 亚洲国产高清aⅴ视频| 91美女精品福利| 五月激情综合色| 久久夜色精品一区| 91香蕉视频污| 日韩av午夜在线观看| 国产三区在线成人av| 91在线视频免费91| 日本欧美大码aⅴ在线播放| 日本一区二区三区四区| 欧美私模裸体表演在线观看| 国产在线精品国自产拍免费| 亚洲精品国产a久久久久久 | 26uuu亚洲综合色| 北岛玲一区二区三区四区| 亚洲电影欧美电影有声小说| 久久综合av免费| 欧美日韩中文字幕一区| 国产精品一卡二卡在线观看| 亚洲一二三四在线| 久久久精品综合| 欧美电影在线免费观看| 波多野结衣在线一区| 日本系列欧美系列| 亚洲精品成人a在线观看| 久久色视频免费观看| 欧美电视剧在线观看完整版| 波多野结衣欧美| 麻豆91在线观看| 一区二区三区欧美| 亚洲国产精品成人久久综合一区 | 国产成人在线视频播放| 日韩在线一区二区三区| 亚洲丝袜自拍清纯另类| 亚洲精品在线观看视频| 欧美乱熟臀69xxxxxx| 99精品久久久久久| 国产一区激情在线| 日本欧美一区二区三区| 亚洲伊人色欲综合网| 国产欧美日韩另类视频免费观看| 777久久久精品| 在线观看日韩国产| 91色婷婷久久久久合中文| 国产大陆精品国产| 久草热8精品视频在线观看| 日韩和欧美的一区| 亚洲福利视频一区二区| 亚洲免费资源在线播放| 亚洲视频一区二区免费在线观看| 欧美国产精品v| 久久精品夜夜夜夜久久| 久久亚区不卡日本| 精品美女被调教视频大全网站| 欧美一区二区免费视频| 91麻豆精品91久久久久同性| 欧美在线|欧美| 欧美午夜电影在线播放| 91黄视频在线| 欧美亚洲国产一区二区三区| 99riav久久精品riav| 99re热这里只有精品视频| 成人免费黄色在线| youjizz久久| 91蝌蚪porny| 欧美日韩亚洲综合| 这里只有精品电影| 欧美大片一区二区| 国产视频一区在线播放| 国产精品全国免费观看高清 | 成年人午夜久久久| 成人av资源站| 色综合久久久久综合体 | 91浏览器打开| 欧美色网一区二区| 欧美精品久久天天躁| 欧美成人艳星乳罩| 国产亚洲欧洲一区高清在线观看| 国产日韩欧美精品一区| 亚洲品质自拍视频| 青青草国产成人99久久| 国产在线播放一区二区三区| 成人99免费视频| 欧美性色黄大片手机版| 欧美大黄免费观看| 中文字幕在线播放不卡一区| 一区二区欧美视频| 久久国产尿小便嘘嘘尿| 精品国产髙清在线看国产毛片| www.性欧美| 欧美日韩精品专区| 国产亚洲短视频| 亚洲人成在线观看一区二区| 日韩电影在线一区二区| 粉嫩av一区二区三区在线播放 | 久久婷婷综合激情| 亚洲欧美福利一区二区| 奇米精品一区二区三区在线观看一| 国产精品一级二级三级| 欧美日韩五月天| 国产欧美日韩综合| 亚洲国产va精品久久久不卡综合| 久久99久久99精品免视看婷婷| 99久久精品国产精品久久| 日韩欧美在线一区二区三区| 亚洲欧洲无码一区二区三区| 视频一区在线视频| 99久久精品国产一区二区三区| 日韩美女在线视频| 亚洲女人****多毛耸耸8| 国精产品一区一区三区mba桃花| 色综合久久综合| 久久先锋影音av| 午夜精品久久久久影视| 91在线观看美女| 久久影院午夜片一区| 视频一区视频二区中文字幕| 97久久人人超碰| 久久综合狠狠综合久久综合88| 亚洲国产三级在线| 91小视频免费看| 国产喂奶挤奶一区二区三区| 秋霞国产午夜精品免费视频| 欧洲生活片亚洲生活在线观看| 欧美激情一区二区三区蜜桃视频| 麻豆视频一区二区| 在线成人免费视频| 亚洲一区二区三区四区五区中文| 成人手机在线视频| 欧美激情中文字幕| 国产精品一区二区久久精品爱涩| 欧美一级黄色录像| 日本va欧美va精品| 91精品免费观看| 亚洲成人免费视频| 91蝌蚪porny| 亚洲欧美日韩一区二区三区在线观看 | 亚洲精品亚洲人成人网| 懂色av一区二区三区蜜臀 | 69堂精品视频| 日日欢夜夜爽一区| 欧美精三区欧美精三区| 天堂一区二区在线| 91麻豆精品国产91久久久久久久久| 亚洲一卡二卡三卡四卡五卡| 91麻豆swag| 亚洲大片精品永久免费| 欧美日韩精品二区第二页|