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

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

?? graph.c

?? linux下流量查看軟件,可以查看到每臺機子的具體流量
?? C
?? 第 1 頁 / 共 3 頁
字號:
		sprintf(Buffer2, "./htdocs/Subnet-%c-%s.html", config.tag, Buffer1);		file = fopen(Buffer2, "wt");		fprintf(file, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n");		fprintf(file, "<HTML>\n<HEAD><TITLE>Bandwidthd - Subnet %s</TITLE>\n", Buffer1);		if (config.meta_refresh)			fprintf(file, "<META HTTP-EQUIV=\"REFRESH\" content=\"%u\">\n",					config.meta_refresh);		fprintf(file, "<META HTTP-EQUIV=\"EXPIRES\" content=\"-1\">\n");		fprintf(file, "<META HTTP-EQUIV=\"PRAGMA\" content=\"no-cache\">\n");		fprintf(file, "</HEAD>\n<BODY vlink=blue>\n%s<br>\n<CENTER><a name=\"Top\"></a>", ctime(&WriteTime));		fprintf(file, "<img src=\"logo.gif\" ALT=\"Logo\"><BR>");		fprintf(file, "Programmed by David Hinkle, Commissioned by <a href=\"http://www.derbytech.com\">DerbyTech</a> wireless networking.<BR>\n");		fprintf(file, "<BR>\n - <a href=\"index.html\">Daily</a> -- <a href=\"index2.html\">Weekly</a> -- ");		fprintf(file, "<a href=\"index3.html\">Monthly</a> -- <a href=\"index4.html\">Yearly</a> - <BR>\n");		fprintf(file, "<BR>\nPick a Subnet:<BR>\n");		if (config.tag == '1')			fprintf(file, "- <a href=\"index.html\">Top20</a> -");		else			fprintf(file, "- <a href=\"index%c.html\">Top20</a> -", config.tag);		for (Counter = 0; Counter < SubnetCount; Counter++)			{			HostIp2CharIp(SubnetTable[Counter].ip, Buffer2);			fprintf(file, "- <a href=\"Subnet-%c-%s.html\">%s</a> -", config.tag, Buffer2, Buffer2);			}		fprintf(file, "<H1>%s - %s</H1></center>", Buffer1, PeriodDesc);		fprintf(file, "<table width=\"100%%\" border=1 cellspacing=0>\n");        // PASS 1:  Write out the table		fprintf(file, "<TR bgcolor=lightblue><TD>Ip and Name<TD align=center>Total<TD align=center>Total Sent<TD align=center>Total Received<TD align=center>FTP<TD align=center>HTTP<TD align=center>P2P<TD align=center>TCP<TD align=center>UDP<TD align=center>ICMP\n");		for (tCounter=0, Counter=0; Counter < NumIps; Counter++)			{            if (SubnetTable[SubnetCounter].ip == (SummaryData[Counter]->IP & SubnetTable[SubnetCounter].mask))				{ // The ip belongs to this subnet				PrintTableLine(file, SummaryData[Counter], tCounter++);    			}			}		fprintf(file, "</table>\n");		// PASS 2: The graphs		for (Counter=0; Counter < NumIps; Counter++)			{            if (SubnetTable[SubnetCounter].ip == (SummaryData[Counter]->IP & SubnetTable[SubnetCounter].mask))				{ // The ip belongs to this subnet				if (SummaryData[Counter]->Graph)					{					HostIp2CharIp(SummaryData[Counter]->IP, Buffer1);					rdns(HostName, SummaryData[Counter]->IP);					fprintf(file, "<a name=\"%s-%c\"></a><H1><a href=\"#top\">(Top)</a> %s - %s</H1><BR>\nSend:<br>\n<img src=%s-%c-S.png ALT=\"Sent traffic graph for %s\"><BR>\n<img src=legend.gif ALT=\"Legend\"><br>\nReceived:<br>\n<img src=%s-%c-R.png ALT=\"Received traffic for %s\"><BR>\n<img src=legend.gif ALT=\"Legend\"><br>\n<BR>\n", Buffer1, config.tag, Buffer1, HostName, Buffer1, config.tag, Buffer1, Buffer1, config.tag, Buffer1);					}				}			}		fprintf(file, "</BODY></HTML>\n");		fclose(file);		}	free(SummaryData);	}void GraphIp(struct IPDataStore *DataStore, struct SummaryData *SummaryData, time_t timestamp)    {    FILE *OutputFile;    char outputfilename[50];    gdImagePtr im, im2;    int white;    unsigned long long int YMax;	char CharIp[20];    time_t GraphBeginTime;	// TODO: First determine if graph will be printed before creating image and drawing backround, etc	if (DataStore->ip == 0)		strcpy(CharIp, "Total");	else		HostIp2CharIp(DataStore->ip, CharIp);    GraphBeginTime = timestamp - config.range;    im = gdImageCreate(XWIDTH, YHEIGHT);    white = gdImageColorAllocate(im, 255, 255, 255);    //gdImageFill(im, 10, 10, white);    im2 = gdImageCreate(XWIDTH, YHEIGHT);    white = gdImageColorAllocate(im2, 255, 255, 255);    //gdImageFill(im2, 10, 10, white);    YMax = GraphData(im, im2, DataStore, GraphBeginTime, SummaryData);    if (YMax != 0)        {        // Finish the graph        PrepareXAxis(im, timestamp);        PrepareYAxis(im, YMax);        PrepareXAxis(im2, timestamp);        PrepareYAxis(im2, YMax);        sprintf(outputfilename, "./htdocs/%s-%c-S.png", CharIp, config.tag);        OutputFile = fopen(outputfilename, "wb");            gdImagePng(im, OutputFile);        fclose(OutputFile);        sprintf(outputfilename, "./htdocs/%s-%c-R.png", CharIp, config.tag);        OutputFile = fopen(outputfilename, "wb");        gdImagePng(im2, OutputFile);        fclose(OutputFile);        }    else        {        // The graph isn't worth clutering up the web pages with        sprintf(outputfilename, "./htdocs/%s-%c-R.png", CharIp, config.tag);        unlink(outputfilename);        sprintf(outputfilename, "./htdocs/%s-%c-S.png", CharIp, config.tag);        unlink(outputfilename);        }	gdImageDestroy(im);	gdImageDestroy(im2);    }// Returns YMaxunsigned long long int GraphData(gdImagePtr im, gdImagePtr im2, struct IPDataStore *DataStore, time_t timestamp, struct SummaryData *SummaryData)    {    unsigned long long int YMax=0;		struct DataStoreBlock *CurrentBlock;    struct IPData *Data;	// TODO: These should be a structure!!!!	// TODO: This is an awfull lot of data to be allocated on the stack    unsigned long long total[XWIDTH];    unsigned long long icmp[XWIDTH];    unsigned long long udp[XWIDTH];    unsigned long long tcp[XWIDTH];	unsigned long long ftp[XWIDTH];    unsigned long long http[XWIDTH];    unsigned long long p2p[XWIDTH];    int Count[XWIDTH];    unsigned long long total2[XWIDTH];    unsigned long long icmp2[XWIDTH];    unsigned long long udp2[XWIDTH];    unsigned long long tcp2[XWIDTH];	unsigned long long ftp2[XWIDTH];    unsigned long long http2[XWIDTH];    unsigned long long p2p2[XWIDTH];    size_t DataPoints;    double x;    int xint;    int Counter;    char Buffer[30];    char Buffer2[50];        int blue, lblue, red, yellow, purple, green, brown, black;    int blue2, lblue2, red2, yellow2, purple2, green2, brown2, black2;	unsigned long long int SentPeak = 0;	unsigned long long int ReceivedPeak = 0;    yellow   = gdImageColorAllocate(im, 255, 255, 0);    purple   = gdImageColorAllocate(im, 255, 0, 255);    green    = gdImageColorAllocate(im, 0, 255, 0);    blue     = gdImageColorAllocate(im, 0, 0, 255);	lblue	 = gdImageColorAllocate(im, 128, 128, 255);    brown    = gdImageColorAllocate(im, 128, 0, 0);    red      = gdImageColorAllocate(im, 255, 0, 0);    black 	 = gdImageColorAllocate(im, 0, 0, 0);        yellow2  = gdImageColorAllocate(im2, 255, 255, 0);    purple2   = gdImageColorAllocate(im2, 255, 0, 255);    green2   = gdImageColorAllocate(im2, 0, 255, 0);    blue2    = gdImageColorAllocate(im2, 0, 0, 255);	lblue2	 = gdImageColorAllocate(im2, 128, 128, 255);    brown2   = gdImageColorAllocate(im2, 128, 0, 0);    red2     = gdImageColorAllocate(im2, 255, 0, 0);    black2   = gdImageColorAllocate(im2, 0, 0, 0);	CurrentBlock = DataStore->FirstBlock;	Data = CurrentBlock->Data;    DataPoints = CurrentBlock->NumEntries;	memset(SummaryData, 0, sizeof(struct SummaryData));	SummaryData->IP = Data[0].ip;	    memset(Count, 0, sizeof(Count[0])*XWIDTH);    memset(total, 0, sizeof(total[0])*XWIDTH);    memset(icmp, 0, sizeof(total[0])*XWIDTH);    memset(udp, 0, sizeof(total[0])*XWIDTH);    memset(tcp, 0, sizeof(total[0])*XWIDTH);	memset(ftp, 0, sizeof(total[0])*XWIDTH);    memset(http, 0, sizeof(total[0])*XWIDTH);    memset(p2p, 0, sizeof(total[0])*XWIDTH);    memset(total2, 0, sizeof(total[0])*XWIDTH);    memset(icmp2, 0, sizeof(total[0])*XWIDTH);    memset(udp2, 0, sizeof(total[0])*XWIDTH);    memset(tcp2, 0, sizeof(total[0])*XWIDTH);    memset(ftp2, 0, sizeof(total[0])*XWIDTH);    memset(http2, 0, sizeof(total[0])*XWIDTH);    memset(p2p2, 0, sizeof(total[0])*XWIDTH);	// Change this to just run through all the datapoints we have stored in ram	// Sum up the bytes/second    while(DataPoints > 0)  // We have data to graph        {        for (Counter = 0; Counter < DataPoints; Counter++)  // Graph it all            {            x = (Data[Counter].timestamp-timestamp)*((XWIDTH-XOFFSET)/config.range)+XOFFSET;                    xint = x;            if (xint >= 0 && xint < XWIDTH)                {                Count[xint]++;								if (Data[Counter].Send.total > SentPeak)					SentPeak = Data[Counter].Send.total;       	        total[xint] += Data[Counter].Send.total;           	    icmp[xint] += Data[Counter].Send.icmp;               	udp[xint] += Data[Counter].Send.udp;                tcp[xint] += Data[Counter].Send.tcp;				ftp[xint] += Data[Counter].Send.ftp;       	        http[xint] += Data[Counter].Send.http;				p2p[xint] += Data[Counter].Send.p2p;                if (Data[Counter].Receive.total > ReceivedPeak)   	            	ReceivedPeak = Data[Counter].Receive.total;       	        total2[xint] += Data[Counter].Receive.total;           	    icmp2[xint] += Data[Counter].Receive.icmp;               	udp2[xint] += Data[Counter].Receive.udp;                tcp2[xint] += Data[Counter].Receive.tcp;				ftp2[xint] += Data[Counter].Receive.ftp;       	        http2[xint] += Data[Counter].Receive.http;				p2p2[xint] += Data[Counter].Receive.p2p;                }            }		CurrentBlock = CurrentBlock->Next;					if (CurrentBlock)			{         	Data = CurrentBlock->Data;			DataPoints = CurrentBlock->NumEntries;			}		else			DataPoints = 0;		        }	// Convert SentPeak and ReceivedPeak from bytes to bytes/second	SentPeak /= config.interval; ReceivedPeak /= config.interval;    // Preform the Average    for(Counter=XOFFSET+1; Counter < XWIDTH; Counter++)            {            if (Count[Counter] > 0)                {            	SummaryData->Total += total[Counter] + total2[Counter];				SummaryData->TotalSent += total[Counter]; 				SummaryData->TotalReceived += total2[Counter];				SummaryData->TCP += tcp[Counter] + tcp2[Counter];				SummaryData->FTP += ftp[Counter] + ftp2[Counter];				SummaryData->HTTP += http[Counter] + http2[Counter];				SummaryData->P2P += p2p[Counter] + p2p2[Counter];				SummaryData->UDP += udp[Counter] + udp2[Counter];				SummaryData->ICMP += icmp[Counter] + icmp2[Counter];                // Preform the average                total[Counter] /= (Count[Counter]*config.interval);                tcp[Counter] /= (Count[Counter]*config.interval);                ftp[Counter] /= (Count[Counter]*config.interval);                http[Counter] /= (Count[Counter]*config.interval);				p2p[Counter] /= (Count[Counter]*config.interval);                udp[Counter] /= (Count[Counter]*config.interval);                icmp[Counter] /= (Count[Counter]*config.interval);								                total2[Counter] /= (Count[Counter]*config.interval);                tcp2[Counter] /= (Count[Counter]*config.interval);				ftp2[Counter] /= (Count[Counter]*config.interval);                http2[Counter] /= (Count[Counter]*config.interval);				p2p2[Counter] /= (Count[Counter]*config.interval);                udp2[Counter] /= (Count[Counter]*config.interval);                icmp2[Counter] /= (Count[Counter]*config.interval);                if (total[Counter] > YMax)                    YMax = total[Counter];                                if (total2[Counter] > YMax)                    YMax = total2[Counter];                }            }    YMax += YMax*0.05;    // Add an extra 5%	    if ((SummaryData->IP != 0 && SummaryData->Total < config.graph_cutoff))		{		SummaryData->Graph = FALSE;        return(0);		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲柠檬福利资源导航| 日韩精品中文字幕一区二区三区 | 日韩欧美中文字幕制服| 久久综合国产精品| 亚洲区小说区图片区qvod| 日韩精品电影一区亚洲| 成人性生交大合| 国产精品99久久久| 欧美特级限制片免费在线观看| 69堂亚洲精品首页| 亚洲乱码国产乱码精品精可以看 | av激情亚洲男人天堂| 欧美理论片在线| 国产精品欧美久久久久一区二区| 亚洲第一福利视频在线| 国内久久婷婷综合| 欧美精品久久99久久在免费线| 中文字幕免费不卡| 麻豆成人久久精品二区三区红 | 色综合色狠狠综合色| 久久综合色综合88| 亚洲电影视频在线| 一本一本久久a久久精品综合麻豆| 6080亚洲精品一区二区| 一区在线观看视频| 韩国午夜理伦三级不卡影院| 欧美岛国在线观看| 久久成人综合网| 欧美大胆人体bbbb| 精品一区免费av| 久久综合久久鬼色| 国产寡妇亲子伦一区二区| 日韩美女主播在线视频一区二区三区| 日本一区中文字幕| 欧美v亚洲v综合ⅴ国产v| 久久精品国产澳门| 国产午夜精品久久久久久久| 国产成人免费视频一区| 中文在线免费一区三区高中清不卡| 国产一区二区三区av电影| 欧美国产日韩精品免费观看| av在线不卡免费看| 亚洲一区二区三区四区在线免费观看 | 91精品国产91综合久久蜜臀| 午夜精品久久一牛影视| 日韩亚洲欧美综合| 高清成人免费视频| 亚洲欧美另类图片小说| 欧美少妇一区二区| 老司机午夜精品| 国产精品午夜在线| 欧洲一区二区av| 蜜桃精品视频在线| 久久精品人人做人人爽97| 成人午夜免费av| 亚洲国产成人va在线观看天堂| 日韩欧美色电影| 国产成人av一区二区三区在线| 亚洲人精品午夜| 日韩一区二区三区四区五区六区| 风流少妇一区二区| 欧美视频一区二区三区| 日韩一卡二卡三卡国产欧美| 久久综合资源网| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 午夜精品影院在线观看| 91精品国产综合久久福利软件| 国产精品一区二区在线观看网站| 亚洲欧美另类综合偷拍| 日韩欧美久久久| 91影视在线播放| 黄色资源网久久资源365| 亚洲激情在线播放| 日韩精品中文字幕在线一区| 色一区在线观看| 国产精品白丝jk白祙喷水网站| 一区二区三区国产| 欧美国产成人在线| 日韩一区二区三区观看| 色综合久久中文综合久久97| 国产一区二区美女诱惑| 亚洲va韩国va欧美va精品 | 亚洲一二三四区| 国产偷国产偷精品高清尤物 | 丝袜a∨在线一区二区三区不卡 | jlzzjlzz欧美大全| 国内成人自拍视频| 蜜臀va亚洲va欧美va天堂| 亚洲视频资源在线| 中文一区一区三区高中清不卡| 日韩欧美精品三级| 欧美精品在线一区二区三区| va亚洲va日韩不卡在线观看| 精品一区二区三区蜜桃| 日本午夜精品视频在线观看| 亚洲永久免费视频| 亚洲靠逼com| 中文字幕中文在线不卡住| 2020日本不卡一区二区视频| 日韩欧美电影一区| 日韩午夜中文字幕| 日韩免费电影一区| 日韩欧美三级在线| 欧美电影免费提供在线观看| 日韩视频在线观看一区二区| 精品视频资源站| 欧美午夜精品久久久久久超碰| 97久久超碰国产精品| 成人小视频在线观看| 成人影视亚洲图片在线| 高清在线成人网| 成人97人人超碰人人99| 波多野结衣的一区二区三区| 成人aa视频在线观看| 91免费看`日韩一区二区| 99在线热播精品免费| 91蜜桃网址入口| 欧美体内she精视频| 欧美精品久久一区| 欧美本精品男人aⅴ天堂| 久久综合久久久久88| 日本一区二区三区国色天香 | 欧美色综合网站| 91精品国产乱码久久蜜臀| 日韩精品一区二区三区swag | 午夜久久电影网| 免费久久99精品国产| 国产一区二区精品在线观看| 久久超碰97中文字幕| 国产美女av一区二区三区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 99免费精品视频| 欧美午夜精品免费| 欧美电影免费观看完整版| 中文字幕乱码一区二区免费| 亚洲激情自拍视频| 久久激情综合网| 成人一区二区三区在线观看| 91麻豆免费在线观看| 678五月天丁香亚洲综合网| 亚洲精品在线免费观看视频| 亚洲欧洲国产专区| 青青草原综合久久大伊人精品优势 | 欧美中文字幕不卡| 精品久久久久久久久久久久包黑料 | 国产丝袜美腿一区二区三区| 最近中文字幕一区二区三区| 舔着乳尖日韩一区| 国产精品一区二区久激情瑜伽| 91香蕉视频mp4| 精品国产欧美一区二区| 亚洲免费观看视频| 精品中文av资源站在线观看| 色噜噜狠狠色综合欧洲selulu| 欧美一级黄色大片| 亚洲精品亚洲人成人网| 黄色成人免费在线| 欧美日韩一区二区三区不卡| 久久久www成人免费毛片麻豆 | 日韩精品一区二区三区四区视频 | 视频一区二区欧美| 色综合天天综合给合国产| 欧美电影精品一区二区| 亚洲线精品一区二区三区八戒| 国产aⅴ综合色| 日韩精品一区二区三区在线播放| 亚洲色图一区二区| 国产精品99久久久久久似苏梦涵| 欧美日韩中字一区| 亚洲视频在线一区二区| 高清shemale亚洲人妖| 日韩欧美亚洲国产精品字幕久久久| 亚洲免费av高清| 成人av网站在线观看免费| 久久综合九色综合97婷婷女人 | 欧美白人最猛性xxxxx69交| 午夜伦欧美伦电影理论片| 91女神在线视频| 国产精品免费观看视频| 激情综合五月婷婷| 日韩午夜av电影| 美女视频网站久久| 欧美一级夜夜爽| 奇米亚洲午夜久久精品| 在线播放视频一区| 性做久久久久久| 欧美人与z0zoxxxx视频| 亚洲第一主播视频| 欧美日韩夫妻久久| 亚洲一二三级电影| 欧美色精品在线视频| 一区二区久久久久久| 91高清视频免费看| 亚洲自拍偷拍图区| 精品污污网站免费看| 午夜电影久久久| 欧美电影免费提供在线观看| 久久99久久精品| 国产日产欧美一区二区视频| 粉嫩欧美一区二区三区高清影视 |