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

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

?? trpr.cpp

?? trpr是可以分析tcpdump和mgen日志記錄
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
        const char* ProtocolType(unsigned char value) const;                        Address SourceAddress(const char* hdr) const        {	        if (Version(hdr) == 4)            {   	            unsigned long buf;	            buf =  ((256*256*256)*((unsigned char)hdr[12]) +                            (256*256)*((unsigned char)hdr[13]) +                                (256)*((unsigned char)hdr[14]) +                                      ((unsigned char)hdr[15]));                return Address(buf, Address::IPv4);	        }	        else // (Version(hdr) == 6)	        {	            unsigned long buf[4];	            Address theAddress;	            for(unsigned int i =0; i < 4; i++)	            {                    buf[i] = ((256*256*256)*((unsigned char)hdr[(i*4)+8]) +                                  (256*256)*((unsigned char)hdr[(i*4)+9]) +                                      (256)*((unsigned char)hdr[(i*4)+10]) +                                            ((unsigned char)hdr[(i*4)+11]));                    buf[i] = htonl(buf[i]);	            }	            theAddress.SetIPv6(buf);	            return theAddress;	        }	    }                Address DestinationAddress(const char* hdr) const        {	        if(4 == Version(hdr))            {                unsigned long buf = (((256*256*256)*((unsigned char)hdr[16]) +                                          (256*256)*((unsigned char)hdr[17]) +                                              (256)*((unsigned char)hdr[18]) +                                                    ((unsigned char)hdr[19])));                return Address(buf, Address::IPv4);	        }	        else  // (6 == Version(hdr))	        {	            unsigned long buf[4];	            Address theAddress;	            for(unsigned int i = 0; i<=4 ; i++)	            {                    buf[i] = ((256*256*256)*((unsigned char)hdr[(i*4)+24]) +                                  (256*256)*((unsigned char)hdr[(i*4)+25]) +                                      (256)*((unsigned char)hdr[(i*4)+26]) +                                            ((unsigned char)hdr[(i*4)+27]));                    buf[i] = htonl(buf[i]);                }                theAddress.SetIPv6(buf);	            return theAddress;	        }            }                unsigned short SourcePort(const char* hdr) const        {	        unsigned int ipHdrLen;	        if(Version(hdr) == 4)                ipHdrLen = 4 * (((unsigned char)hdr[0]) & 0x0f);	        else	            ipHdrLen = 40;            hdr += ipHdrLen;            return (256*((unsigned char)hdr[0]) + (unsigned char)hdr[1]);        }                unsigned short DestinationPort(const char* hdr) const        {	        unsigned int ipHdrLen;	        if(Version(hdr) == 4)                ipHdrLen = 4 * (((unsigned char)hdr[0]) & 0x0f);            else	            ipHdrLen = 40;	        hdr += ipHdrLen;            return (256*((unsigned char)hdr[2]) + (unsigned char)hdr[3]);        }      };  // end class TcpdumpEventParserclass DrecEventParser : public EventParser{    public:        bool GetNextPacketEvent(FILE*           filePtr,                                 PacketEvent*    theEvent,                                 double          timeout = -1.0);};  // end class DrecEventParserclass Point{    friend class PointList;        public:        Point(double x, double y);        Point(double x, unsigned long k);        double X() {return xval;}        double Y() {return yval;}        double K() {return kval;}        Point* Prev() {return prev;}        Point* Next() {return next;}        private:        double          xval;        double          yval;        unsigned long   kval;        Point*          prev;        Point*          next;};  // end class Point()class PointList{    public:        PointList();        ~PointList();        Point* Head() {return head;}        Point* Tail() {return tail;}        void Append(Point* thePoint);        void Remove(Point* thePoint);        void Destroy();        void PruneData(double xMin);        bool PrintData(FILE* filePtr);        Point* FindPointByK(unsigned long k);            private:        Point* head;        Point* tail;    };class LossTracker{    public:        LossTracker();        void Reset()        {            loss_list.Destroy();            packet_count = 0;            loss_count = 0;            duplicate_count = 0;            late_count = 0;            loss_fraction = 1.0;        }                void Init(unsigned long seqMax)        {            Reset();            SetSeqMax(seqMax);            resync_count = 0;            first_packet = true;        }        bool Update(double theTime, unsigned long theSequence, unsigned long theFlow = 0);                void SetSeqMax(unsigned long seqMax)        {            seq_max = seqMax;            seq_hlf = seqMax >> 1;            seq_qtr = seqMax >> 2;         }        double LossFraction() {return loss_fraction;}        unsigned long ResyncCount() {return resync_count;}        unsigned long DuplicateCount() {return duplicate_count;}        unsigned long LateCount() {return late_count;}                    private:        PointList     loss_list;        double        last_time;        double        loss_fraction;        long          loss_max;        bool          first_packet;        unsigned long packet_count;        unsigned long loss_count;        unsigned long resync_count;        unsigned long duplicate_count;        unsigned long late_count;                unsigned long seq_max;        unsigned long seq_hlf;        unsigned long seq_qtr;        unsigned long seq_last;                unsigned long flow_id; // makes sure all drec packets from same flow};  // end class LossTracker// A data driven loss tracker, procrastinates as needed.class LossTracker2{    public:        LossTracker2();        void Init(double windowSize, unsigned long seqMax = 0xffffffff)        {            window_size = windowSize;            seq_max = seqMax;            seq_hlf = seqMax >> 1;            seq_qtr = seqMax >> 2;            first_packet = true;            packet_count = 0;        }        void Reset()        {            seq_first = seq_last;            time_first = time_last;            if (window_size > 0)                window_end = time_first + window_size;            packet_count = 1;                  wrap = false;            wrap_count = 0;        }        int Update(double theTime, unsigned long theSeq, unsigned long theFlow = 0);                double LossFraction();        double LossWindowStart() {return time_first;}        double LossWindowEnd() {return time_last;}        private:        bool            first_packet;        bool            wrap;        unsigned long   wrap_count;        double          time_first;        double          time_last;        double          window_size;        double          window_end;        unsigned long   packet_count;        unsigned long   seq_first;        unsigned long   seq_last;                unsigned long   duplicate_count;        unsigned long   resync_count;                unsigned long   seq_max;        unsigned long   seq_hlf;        unsigned long   seq_qtr;                unsigned long   flow_id;  // to make sure all drec packets from same flow    };  // end class LossTracker2// Simple self-scaling linear/non-linear histogram (one-sided)class Histogram{    public:        Histogram();        void Init(unsigned long numBins, double linearity)        {            num_bins = numBins;            q = linearity;            if (bin) delete[] bin;            bin = NULL;        }        bool Tally(double value, unsigned long count = 1);        void Print(FILE* file);        unsigned long Count();        double PercentageInRange(double rangeMin, double rangeMax);        double Min() {return min_val;}        double Max() {return max_val;}        double Percentile(double p);                   private:             typedef struct        {            double          total;            unsigned long   count;        } Bin;                double          q;        unsigned long   num_bins;        double          min_val;        double          max_val;          Bin*            bin;           }; // end class HistogramHistogram::Histogram() : q(1.0), num_bins(1000), min_val(0.0), max_val(0.0), bin(NULL){}bool Histogram::Tally(double value, unsigned long count){    if (!bin)    {        if (!(bin = new Bin[num_bins]))        {            perror("trpr: Histogram::Tally() Error allocating histogram");            return false;           }        memset(bin, 0, num_bins*sizeof(Bin));        min_val = max_val = value;        bin[0].count = count;        bin[0].total = (value * (double)count);    }    else if ((value > max_val) || (value < min_val))    {        Bin* newBin = new Bin[num_bins];        if (!newBin)        {            perror("trpr: Histogram::Tally() Error reallocating histogram");            return false;         }        memset(newBin, 0, num_bins*sizeof(Bin));        double newScale, minVal;        if (value < min_val)        {                    newScale = ((double)(num_bins-1)) / pow(max_val - value, q);            unsigned long index = (unsigned long)ceil(newScale * pow(min_val - value, q));            if (index > (num_bins-1)) index = num_bins - 1;            newBin[index].total += bin[0].total;            newBin[index].count += bin[0].count;            minVal = value;        }        else        {            double s = (value < 0.0) ? 0.5 : 2.0;               newScale = ((double)(num_bins-1)) / pow(s*value - min_val, q);            newBin[0].total = bin[0].total;            newBin[0].count = bin[0].count;            minVal = min_val;        }        for (unsigned int i = 1; i < num_bins; i++)        {            if (bin[i].count)            {                double x = bin[i].total / ((double)bin[i].count);                unsigned long index = (unsigned long)ceil(newScale * pow(x - minVal, q));                if (index > (num_bins-1)) index = num_bins - 1;                newBin[index].count += bin[i].count;                newBin[index].total += bin[i].total;            }           }        if (value < min_val)        {            newBin[0].count += count;            newBin[0].total += (value * (double)count);            min_val = value;        }        else        {            double s = (value < 0.0) ? 0.5 : 2.0;               max_val = s*value;            unsigned long index =                 (unsigned long)ceil(((double)(num_bins-1)) * pow((value-min_val)/(max_val-min_val), q));                    if (index > (num_bins-1)) index = num_bins - 1;            bin[index].count += count;            bin[index].total += (value * (double)count);        }        delete[] bin;        bin = newBin;    }    else    {        unsigned long index =             (unsigned long)ceil(((double)(num_bins-1)) * pow((value-min_val)/(max_val-min_val), q));                if (index > (num_bins-1)) index = num_bins - 1;        bin[index].count += count;        bin[index].total += (value * (double)count);    }    return true;}  // end Histogram::Tally()void Histogram::Print(FILE* file){    if (bin)    {        for (unsigned int i = 0; i < num_bins; i++)        {            if (bin[i].count)            {                double x = bin[i].total / ((double)bin[i].count);                fprintf(file, "%f, %lu\n", x, bin[i].count);                }        }    }}  // end Histogram::Print()unsigned long Histogram::Count(){    if (bin)    {        unsigned long total =0 ;        for (unsigned int i = 0; i < num_bins; i++)        {            total += bin[i].count;        }        return total;    }    else    {         return 0;    }   }  // end Histogram::Count()double Histogram::PercentageInRange(double rangeMin, double rangeMax){    if (bin)    {        unsigned long countTotal = 0;        unsigned long rangeTotal = 0;        for (unsigned long i = 0; i < num_bins; i++)        {            double value = bin[i].total / ((double)bin[i].count);            countTotal += bin[i].count;            if (value < rangeMin)                continue;            else if (value > rangeMax)                continue;            else                rangeTotal += bin[i].count;        }        return (100.0 * ((double)rangeTotal) / ((double)countTotal));    }    else    {        return 0.0;    }         }  // end Histogram::PercentageInRange()double Histogram::Percentile(double p){    unsigned long goal = Count();    goal = (unsigned long)(((double)goal) * p + 0.5);    unsigned long count = 0;    if (bin)    {        for (unsigned long i = 0; i < num_bins; i++)        {            count += bin[i].count;            if (count >= goal)            {                double x = pow(((double)i) / ((double)num_bins-1), 1.0/q);                x *= (max_val - min_val);                x += min_val;                return x;               }        }    }    return max_val;}  // end Histogram::Percentile()class Flow{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人影院| 国产精品女主播av| 免费成人小视频| 日韩免费观看高清完整版| 久久精品99国产精品| 欧美tickling网站挠脚心| 精品一区二区三区影院在线午夜| 欧美精品一区二区三区在线播放| 国产盗摄精品一区二区三区在线| 国产精品美女久久久久久久| 91女神在线视频| 午夜精品久久久| 欧美v日韩v国产v| 成人久久视频在线观看| 一区二区在线观看视频 | 一区二区日韩电影| 欧美日韩一区二区三区四区五区| 天天操天天色综合| 久久色.com| 色哟哟国产精品| 免费看欧美美女黄的网站| 国产欧美日韩视频一区二区| 91免费观看在线| 日本欧美肥老太交大片| 国产精品美日韩| 欧美日韩国产美| 国产精品996| 亚洲一区免费在线观看| 337p日本欧洲亚洲大胆精品| 91色综合久久久久婷婷| 青草国产精品久久久久久| 国产日韩欧美制服另类| 欧美精品一级二级| 国产成人精品午夜视频免费| 亚洲一区二区三区在线看| 久久综合九色综合久久久精品综合 | 国产一区二区看久久| 亚洲美女电影在线| 欧美变态凌虐bdsm| 91亚洲永久精品| 国产一区二区三区| 午夜国产精品影院在线观看| 国产精品美女久久久久久| 日韩一区二区在线观看视频 | 欧美国产一区在线| 91麻豆精品国产91久久久久久久久 | 91农村精品一区二区在线| 久久99精品久久久久久久久久久久| 国产精品白丝在线| 久久在线观看免费| 欧美午夜片在线看| 不卡在线观看av| 精品系列免费在线观看| 五月天婷婷综合| 国产精品动漫网站| 久久久久久久久久久电影| 日韩天堂在线观看| 欧美主播一区二区三区美女| 成人久久18免费网站麻豆| 激情图片小说一区| 免费成人性网站| 日韩电影在线观看电影| 亚洲资源在线观看| 亚洲精品高清视频在线观看| 国产精品久久免费看| 久久影院视频免费| 久久久久97国产精华液好用吗| 7878成人国产在线观看| 欧美人伦禁忌dvd放荡欲情| 色综合天天综合狠狠| 91尤物视频在线观看| 91小宝寻花一区二区三区| 97精品久久久久中文字幕| 99久久国产综合精品色伊| 不卡av电影在线播放| 成人一区二区三区视频 | 亚洲视频在线一区二区| 国产亲近乱来精品视频| 国产欧美一区二区精品性色| 欧美国产激情二区三区| 国产精品午夜在线| 国产精品国产三级国产有无不卡 | 一区二区三区四区在线播放 | 精品成人一区二区| 欧美成人猛片aaaaaaa| 精品少妇一区二区三区日产乱码| 欧美精品一区二区三区蜜桃视频| 欧美精品一区二区高清在线观看 | 精品久久一二三区| 精品久久久久久最新网址| 精品久久人人做人人爰| 国产人妖乱国产精品人妖| 亚洲欧洲日产国码二区| 亚洲美女屁股眼交| 三级欧美在线一区| 麻豆成人久久精品二区三区红 | 欧美国产一区在线| 国产精品电影一区二区三区| 一区二区三区四区不卡视频| 亚洲午夜免费视频| 美女在线视频一区| 国产成人免费在线视频| 99精品热视频| 777a∨成人精品桃花网| 久久久蜜桃精品| 亚洲免费在线观看| 三级一区在线视频先锋| 国产成人高清在线| 色94色欧美sute亚洲线路二 | 国产精品久久久久久久久免费丝袜 | 日韩黄色免费网站| 国产美女娇喘av呻吟久久| k8久久久一区二区三区| 在线亚洲人成电影网站色www| 欧美精品一二三区| 国产蜜臀av在线一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 麻豆91精品视频| 99r精品视频| 欧美变态凌虐bdsm| 一区二区三区成人在线视频| 精品一区二区三区在线播放视频 | 成人小视频免费在线观看| 欧美综合天天夜夜久久| 久久久久久一二三区| 亚洲成人高清在线| av一区二区三区| 欧美一区二区三区视频免费播放 | 亚洲大型综合色站| 国产91精品精华液一区二区三区 | 成人av资源在线| 欧美一区二视频| 亚洲男人天堂一区| 丁香五精品蜜臀久久久久99网站| 欧美日韩精品一区二区| 亚洲欧美综合在线精品| 韩国毛片一区二区三区| 欧美日韩免费电影| 亚洲人精品午夜| 懂色av一区二区三区免费观看| 日韩欧美一二三区| 亚洲gay无套男同| 一本一道波多野结衣一区二区| 久久嫩草精品久久久久| 日日夜夜免费精品| 欧美色区777第一页| 亚洲视频一二区| 岛国精品在线播放| 久久天堂av综合合色蜜桃网| 美腿丝袜亚洲色图| 7777精品伊人久久久大香线蕉完整版 | 久久国产精品色| 欧美日韩在线不卡| 亚洲一级片在线观看| 一本色道久久综合亚洲精品按摩 | 国产日产欧美一区二区三区| 九九**精品视频免费播放| 日韩一区二区三区在线观看| 五月天激情综合网| 欧美美女直播网站| 日日摸夜夜添夜夜添亚洲女人| 在线亚洲人成电影网站色www| 亚洲精选视频免费看| 91麻豆国产福利精品| 一区二区三区精品视频| 欧洲一区二区三区在线| 亚洲大片免费看| 欧美一区三区四区| 狠狠色丁香久久婷婷综合_中| 欧美大尺度电影在线| 韩国女主播成人在线| 国产亚洲欧美日韩在线一区| 国产精品66部| 国产精品美女久久久久aⅴ| 91视频免费看| 一区二区免费在线| 欧美一区二区三区视频在线| 美国av一区二区| 国产亚洲精品资源在线26u| 懂色av中文字幕一区二区三区 | 蜜桃精品在线观看| 精品福利一二区| 高清av一区二区| 1000精品久久久久久久久| 色综合久久99| 秋霞成人午夜伦在线观看| 久久久午夜精品理论片中文字幕| 成人丝袜18视频在线观看| 亚洲欧美视频在线观看视频| 在线播放视频一区| 美女诱惑一区二区| 中文字幕av资源一区| 91成人国产精品| 久久国产成人午夜av影院| 亚洲国产激情av| 在线一区二区三区| 国产一区视频网站| 亚洲免费视频成人| 精品美女一区二区三区| 一本色道久久加勒比精品|