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

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

?? devicelog.c

?? 接收端的程序
?? C
字號:
#include		<stdio.h>#include		<string.h>#include		<stdlib.h>#include		<time.h>#include 		<net-snmp/net-snmp-config.h>#include		 <net-snmp/net-snmp-includes.h>		#include 	"devicelog.h"#include	"logging.h"#include 	"queue.h"#define SYSLOG 	1  			//消息來源于SYSLOG#define TRAP 	2			//消息來源于TRAP#define AGENT 	3			//消息來源于AGENT#define UNIXDEVICE_LOG 4	//來源于UNIX設備的日志消息#define CISCO_LOG 	5		//來源于CISCO設備的日志消息#define UNKNOWN_LOG 	6	//來源于未知設備的日志消息char *month[12]={"Jua","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};/*UNIX設備的facility的定義*/static const char *facility_std[24]={"kernel" , 						"user-level",   						"mail"	, 						"daemons" ,						"authorization" , 						"syslogd" ,						"printer",						" news",						"UUCP",						"clock",						"security",						"FTP",						"NTP",						"log audit",						"log alert",						"clock daemon",						"local use 0",						"local use 1",						"local use 2",						"local use 3",						"local use 4",						"local use 5",						"local use 6",						"local use 7"};/*******************************************************************************************************			函數功能: 判斷消息的日志來源			@ msg: 接收到的消息******************************************************************************************************/int logstyle(char *msg)  {	char mon[4],*count,*spchar1=">",*spchar2="%";	int i=0,j=0;		j=strcspn(msg,spchar1); j++;	if(j>strlen(msg)) return UNKNOWN_LOG;	count=msg+j;		strncpy(mon,count,3);	mon[3]='\0';		for(i=0;i<12;i++)   /*look whether the mon[3] is in the month[12] */	{		if(strcmp(month[i],mon)==0)			break;	}	if(i!=12) return UNIXDEVICE_LOG;		j=strcspn(msg,spchar2);	if(j>0 && j<40) return CISCO_LOG; /*find the '%' in the msg*/		return UNKNOWN_LOG;			}int gethour(){	time_t ti;	struct tm *tm;	time(&ti);	tm=localtime(&ti);	return tm->tm_hour;}int getmin(){	time_t ti;	struct tm *tm;	time(&ti);	tm=localtime(&ti);	return tm->tm_min;}int getsec(){	time_t ti;	struct tm *tm;	time(&ti);	tm=localtime(&ti);	return tm->tm_sec;}int getmon(){	time_t ti;	struct tm *tm;	time(&ti);	tm=localtime(&ti);	return tm->tm_mon+1;}int getday(){	time_t ti;	struct tm *tm;	time(&ti);	tm=localtime(&ti);	return tm->tm_mday;}													int getyear(){	time_t ti;	struct tm *tm;	time(&ti);	tm=localtime(&ti);	return tm->tm_year+1900;	}							/**********************************************************************************************	 	函數功能: 處理來源于UNIX設備的日志消息中的時間戳				@ msg: 消息中的時間戳,格式如: "Oct 12 22:14:13"		@ timestamp: 數據庫中的標準時間戳格式:"11 12 22:14:13"		***********************************************************************************************/							void processtimestamp_std(char *msg,char *timestamp,char **month){	char mon[4],day[3],time[9];	int i=0,j=0;	for(i=0;i<3;i++)		mon[i]=timestamp[i];		mon[3]='\0';	for(i=4;i<=5;i++)		day[j++]=timestamp[i];	day[2]='\0';	j=0;i++;	for(;i<strlen(timestamp);i++)		time[j++]=timestamp[i];	time[8]='\0';	i=0;	for(j=0;j<12;j++)	{		if(strcmp(month[j],mon)==0)			break;	}	j++;/*j is the month*/	memset(mon,'\0',3);	sprintf(mon,"%d",j);	sprintf(timestamp,"%d-%s-%s %s",getyear(),mon,day,time);		}		/*************************************************************************************************************************************							函數功能:從來源于UNIX設備的消息中得到日志的優先級														@ msg:   收到的日志消息							************************************************************************************************************************************/	int getofpri(char * msg){	char *spchar1="<", *spchar2=">",*count,temp[4];	int start=0,end=0;	start=strcspn(msg,spchar1);	end=strcspn(msg,spchar2);	start++;	count=msg+start;	strncpy(temp,count,end-start);	temp[end-start]='\0';	return atoi(temp);}/*************************************************************************************************************************************							函數功能: 從來源于UNIX設備的消息中獲得facility, 其值為priority/8														@ msg: 接收到的日志消息							@ facility: 保存facility值							************************************************************************************************************************************/void getoffacility_std(char *msg,char *facility){         int pri=0,fac=0;                  pri=getofpri(msg);         fac=pri/8;                 sprintf(facility,"%s",facility_std[fac]);                                           }/*************************************************************************************************************************************							函數功能: 從來源于UNIX設備的消息中獲取severity, 其值為: priority/8的余數														@ msg: 接收到的日志消息							@ serverity: 保存severity值************************************************************************************************************************************/void getofserverity_std(char *msg,char *serverity){	int pri=0,ser=0,facility=0;		pri=getofpri(msg);	facility=pri/8;	ser=pri-8*facility;	sprintf(serverity,"%d",ser);	serverity[1]='\0';	//free(temp);}							/*************************************************************************************************************************************							get the time from the message														@ msg: the message style like "<34>Oct 12 14 22:12:14 mymachine su 'su root ' can not open the deveice"							@ time: the point to the result like "Oct 12 14 22:12:14"							************************************************************************************************************************************/void getoftime_std(char *msg,char *time){	char *spchar=">",*count;	int start=0;	start=strcspn(msg,spchar);	start++;		count=msg+start;	strncpy(time,count,15);	time[15]='\0';	}/*************************************************************************************************************************************							get the hostname from the message														@ msg: the message style like "<34>Oct 12 14 22:12:14 mymachine su 'su root ' can not open the deveice"							@hostname: the point to the result like "mymachine"							************************************************************************************************************************************/void getofhostname_std(char *msg,char *hostname){	char *spchar=":",*count;	int start=0,i=0;	start=strcspn(msg,spchar);	start+=7;/*get the start position of the hostname*/	count=msg+start;	while(*count!=' ')	{		hostname[i]=*count;		i++;		count++;	}	hostname[i]='\0';	}/*************************************************************************************************************************************							get the content from the message														@ msg: the message style like "<34>Oct 12 14 22:12:14 mymachine su 'su root ' can not open the deveice"							@ content: the point to the result like "su 'su root ' can not open the deveice"							************************************************************************************************************************************/							void getofcontent_std(char *msg,char *content){	int start=0;	char *count,*spchar=":";	start=strcspn(msg,spchar);	start+=7;		count=msg+start;	while(*count!=' ') count++;	strcpy(content,count);}							/*******************************************************************************************************************												處理CISCO日志格式************************************************************************************************/void processtimestamp_cisco(char *msg,char *timestamp){	int  mon,day;	int j=0;	char time[9],*count,*spchar="%";			mon=getmon();	day=getday();		j=strcspn(msg,spchar); j=j-10;	count=msg+j;		strncpy(time,count,8);	time[8]='\0';		sprintf(timestamp,"%d-%d-%d %s",getyear(),mon,day,time);			}void getfacility_cisco(char *msg, char *facility){	char *spchar1="%",*spchar2="-",*count;	int i,j;		i=strcspn(msg,spchar1); i++;	j=strcspn(msg,spchar2);	count=msg+i;		strncpy(facility,count,j-i);	facility[j-i]='\0';	}void getserverity_cisco(char *msg, char *serverity){	char *spchar="-",*count;	int j;		j=strcspn(msg,spchar); j++;	count=msg+j;	strncpy(serverity,count,1);	serverity[1]='\0';			}void getcontent_cisco(char *msg,char *content){	char *spchar=">",*count;	int j=0;		j=strcspn(msg,spchar); j++;	count=msg+j;		strncpy(content,count,strlen(count));	content[strlen(count)]='\0';}																																																	/*************************************************************************************************************************************							函數功能: 解析日志格式,轉化為標準格式														@ msg: 收到的消息							@ log: 轉換的標準日志格式							************************************************************************************************************************************/								void getmsg(char * log,struct eventinfo *msg)  {	if(UNIXDEVICE_LOG==logstyle(log))       //判斷是否是來自于UNIX設備的日志	{			log_debug("DEVICELOG","This is a UNIX device log!");		getoftime_std(log,msg->time_stamp);		getoffacility_std(log,msg->facility);		getofserverity_std(log,msg->serverity);		getofhostname_std(log,msg->ip);		getofcontent_std(log,msg->content);		processtimestamp_std(log,msg->time_stamp,month);		sprintf(msg->source,"%d",SYSLOG);			}	else		if(CISCO_LOG==logstyle(log))		//判斷是否為來自于CISCO設備的日志格式		{						log_debug("DEVICELOG","This is a CISCO device log!");						log_info("CISCO LOG INFO", log);			processtimestamp_cisco(log,msg->time_stamp);			getfacility_cisco(log,msg->facility);			getserverity_cisco(log,msg->serverity);			getcontent_cisco(log,msg->content);						printf("LOG CONTENT: %s\n", msg->content);					   	sprintf(msg->source,"%d",SYSLOG);				}		else									//來源未知(為了考慮到程序操作的方便性和一致性,對于未知來源的消息采取特殊的賦值處理 )		{			log_debug("DEVICELOG","This is a UNKNOWN log!");			sprintf(msg->time_stamp,"%d-%d-%d %d:%d:%d",getyear(),getmon(),getday(),gethour(),getmin(),getsec());			strcpy(msg->time_stamp," ");			strcpy(msg->facility,"Unknown\0");			strcpy(msg->serverity,"8\0");			strncpy(msg->content,log,strlen(log));			msg->content[strlen(log)]='\0';			sprintf(msg->source,"%d",UNKNOWN_LOG);									/*UNKNOWN_LOG*/										}}																																																																													void get_trap_msg(struct eventinfo *msg, netsnmp_pdu *pdu, char *addr){			char  buffer[10240], temp_buffer[1024],trap_facility[20], severity;			memset(trap_facility, 0, sizeof(trap_facility));						switch(pdu->trap_type)	{		case 0:				strcpy(trap_facility, "coldstart");		severity = '0';		break;	case 1:		strcpy(trap_facility, "warmstart");		severity = '1';		break;			case 2:		strcpy(trap_facility, "linkdown");		severity = '2';		break;	case 3:		strcpy(trap_facility, "linkup");		severity = '3';		break;	case 4:		strcpy(trap_facility, "auth fail");		severity = '4';		break;	case 5:		strcpy(trap_facility, "egpneighbor loss");		severity = '5';		break;	case 6:		strcpy(trap_facility, "enterprise sepecific");		severity = '6';		break;	default:		strcpy(trap_facility, "Unknown");		severity = '7';		break;	}		log_debug("FACILITY", trap_facility);		strcpy(msg->time_stamp, "");	strcpy(msg->facility,trap_facility);	strcpy(msg->serverity, severity);	strcpy(msg->ip, addr);	strcpy(msg->source,"2");		memset(buffer, 0, sizeof(buffer));		struct variable_list *vars;		for(vars = pdu->variables; vars; vars = vars->next_variable)	{		memset(temp_buffer, 0, sizeof(temp_buffer));		snprint_variable(temp_buffer, sizeof(temp_buffer), vars->name, vars->name_length, vars);				strcat(buffer, temp_buffer);		strcat(buffer, ", ");	}		strcpy(msg->content, buffer);		log_info("get_trap_msg", buffer);			}																																																																																																									/*int main(void){	struct eventinfo info;	char buffer[1024];	getmsg(logcontent,&info);	printf("%s\n",info.time_stamp);	printf("%s\n",info.facility);	printf("%s\n",info.serverity);	printf("%s\n",info.host_name);	printf("%s\n",info.content);		processtimestamp(logcontent,info.time_stamp,month);	sprintf(buffer,"insert into EVENT_INFO1 values ('2006-%s','%s','%s','%s','%s')",info.time_stamp,info.facility,		info.serverity,info.host_name,info.content);	printf("%s\n",buffer);	return 0;}*/	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产一区二区三区| 国产色婷婷亚洲99精品小说| 久久精品免视看| 视频一区二区三区在线| 粉嫩高潮美女一区二区三区 | 国产欧美一区二区精品忘忧草| 亚洲蜜臀av乱码久久精品 | 精品成人私密视频| 五月婷婷综合在线| 91国偷自产一区二区三区成为亚洲经典| 精品国产三级电影在线观看| 日本少妇一区二区| 欧美日韩中文精品| 亚洲综合激情小说| 色婷婷久久久综合中文字幕 | 国产亚洲欧美色| 久久av老司机精品网站导航| 欧美一区二区三区在线看| 亚洲一区二区三区视频在线播放| eeuss鲁片一区二区三区在线看| 亚洲精品在线观看网站| 蜜臂av日日欢夜夜爽一区| 欧美人成免费网站| 图片区小说区区亚洲影院| 欧美日韩激情在线| 亚洲综合免费观看高清在线观看| 91激情五月电影| 亚洲天堂av一区| 日本黄色一区二区| 亚洲黄一区二区三区| 91久久精品一区二区| 亚洲在线成人精品| 欧美日韩国产电影| 日韩精彩视频在线观看| 日韩欧美国产精品一区| 国内成人免费视频| 欧美精品一区二区在线播放| 国产综合色在线视频区| 国产欧美日韩麻豆91| av电影在线观看不卡| 一区二区在线电影| 欧美美女直播网站| 老色鬼精品视频在线观看播放| 欧美xxxxxxxxx| 国产精品一区二区三区网站| 国产精品亲子伦对白| 99re这里都是精品| 亚洲成人激情自拍| 精品国产第一区二区三区观看体验 | 国产精品自在欧美一区| 久久久精品中文字幕麻豆发布| 成人理论电影网| 亚洲精品国久久99热| 日韩视频在线观看一区二区| 国产一区啦啦啦在线观看| 亚洲色图另类专区| 91精品国产综合久久久久久漫画| 精品写真视频在线观看| 中文字幕一区在线观看| 欧美精品三级在线观看| 高清视频一区二区| 亚洲与欧洲av电影| 久久久久国产一区二区三区四区 | 一区二区三区在线看| 7777精品伊人久久久大香线蕉 | 国内久久婷婷综合| 一区二区三区不卡在线观看| 欧美一三区三区四区免费在线看| 国产成人综合在线播放| 亚洲最新视频在线观看| 国产日韩精品一区二区三区在线| 在线亚洲精品福利网址导航| 国产精品资源网| 午夜亚洲国产au精品一区二区| 国产午夜精品一区二区| 在线亚洲精品福利网址导航| 国产福利一区二区三区| 日韩二区三区在线观看| 最好看的中文字幕久久| 欧美一卡二卡在线| 欧日韩精品视频| 成人精品电影在线观看| 久久精品72免费观看| 夜夜亚洲天天久久| 国产精品色哟哟网站| 亚洲国产电影在线观看| 欧美日韩视频第一区| 91色.com| 99精品国产99久久久久久白柏| 久久精品免费看| 亚洲国产精品一区二区久久| 国产精品灌醉下药二区| 久久久久久久综合| 欧美一区二区视频免费观看| 色综合久久久久久久久| www.亚洲国产| 国产suv精品一区二区883| 精品一区二区免费看| 日本成人在线视频网站| 五月天激情综合| 一区二区三区日本| 亚洲色图一区二区| 亚洲欧美一区二区三区国产精品 | 欧美久久久久免费| 欧美主播一区二区三区美女| 色婷婷国产精品| 一本到不卡精品视频在线观看| 成人免费视频一区| 国产成人aaaa| 成人免费视频一区| 99久久精品免费看| 色欧美片视频在线观看| 色婷婷国产精品久久包臀| 在线一区二区三区四区五区 | 亚洲国产精品综合小说图片区| 一区二区激情视频| 亚洲超丰满肉感bbw| 日韩主播视频在线| 美女网站色91| 黄色日韩网站视频| 国产电影一区在线| 成人免费视频免费观看| 99久久精品国产一区二区三区| 色婷婷激情综合| 欧美老肥妇做.爰bbww| 日韩欧美一二三四区| 久久日韩粉嫩一区二区三区| 欧美国产精品中文字幕| 亚洲人成网站影音先锋播放| 亚洲一区在线观看视频| 青青草视频一区| 国产精品888| 91蜜桃免费观看视频| 欧美性生活久久| 日韩欧美高清在线| 国产精品欧美极品| 污片在线观看一区二区| 国产精品一区免费在线观看| 91麻豆福利精品推荐| 7777精品久久久大香线蕉| 久久老女人爱爱| 亚洲三级理论片| 久久国产精品免费| 成人一区二区三区在线观看| 欧美性受xxxx黑人xyx性爽| 精品成人一区二区三区| 亚洲激情男女视频| 韩国欧美一区二区| 日本精品视频一区二区三区| 欧美电影精品一区二区| 樱桃国产成人精品视频| 久久福利资源站| 欧美亚洲一区三区| 国产亚洲综合在线| 亚洲成人免费av| jizz一区二区| 精品国产百合女同互慰| 亚洲成人一区在线| 成人国产精品免费观看动漫 | 欧美日韩一区三区四区| 国产午夜精品久久久久久久| 亚洲第一久久影院| 成人性视频网站| 精品精品国产高清一毛片一天堂| 亚洲色图视频免费播放| 国产一区二区电影| 欧美一区二区视频在线观看2020 | 一区二区三区日韩精品视频| 国产成人自拍网| 日韩一区二区三区观看| 一区二区三区资源| 国产精品白丝jk白祙喷水网站| 91精品国产欧美一区二区成人| 亚洲免费观看高清完整版在线观看| 久久国产乱子精品免费女| 欧美视频第二页| 一区二区三区不卡视频| 91在线国内视频| 亚洲国产岛国毛片在线| 国产精品亚洲а∨天堂免在线| 日韩午夜av电影| 青娱乐精品视频| 69精品人人人人| 石原莉奈一区二区三区在线观看| 91精品1区2区| 亚洲一区二区欧美激情| 91一区二区在线| 亚洲欧美乱综合| 91在线丨porny丨国产| 中文字幕日韩欧美一区二区三区| 国产精品一线二线三线| 久久综合久久99| 国产一区二区福利| 久久久99精品久久| 懂色一区二区三区免费观看| 欧美韩国日本一区| 国产v日产∨综合v精品视频| 欧美国产乱子伦| 97se亚洲国产综合自在线不卡 | 国产亚洲欧美一区在线观看|