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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? trpr.cpp

?? trpr是可以分析tcpdump和mgen日志記錄
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/********************************************************************* * * AUTHORIZATION TO USE AND DISTRIBUTE *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that:  * * (1) source code distributions retain this paragraph in its entirety,  *   * (2) distributions including binary code include this paragraph in *     its entirety in the documentation or other materials provided  *     with the distribution, and  * * (3) all advertising materials mentioning features or use of this  *     software display the following acknowledgment: *  *      "This product includes software written and developed  *       by Brian Adamson and Joe Macker of the Naval Research  *       Laboratory (NRL)."  *          *  The name of NRL, the name(s) of NRL  employee(s), or any entity *  of the United States Government may not be used to endorse or *  promote  products derived from this software, nor does the  *  inclusion of the NRL written and developed software  directly or *  indirectly suggest NRL or United States  Government endorsement *  of this product. *  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ********************************************************************/ #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>#include <limits.h>  // for PATH_MAX#include <string.h>#include <math.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>       #include <sys/time.h>  // for gettimeofday()#include <sys/types.h>#define VERSION "1.9b9"#ifndef MIN#define MIN(X,Y) ((X<Y)?X:Y)#define MAX(X,Y) ((X>Y)?X:Y)#endif // !MINconst int MAX_LINE = 256;enum TraceFormat {TCPDUMP, DREC, NS};enum PlotMode {RATE, INTERARRIVAL, LATENCY, DROPS, LOSS, LOSS2, VELOCITY};class FastReader{    public:        enum Result {OK, ERROR, DONE, TIMEOUT};        FastReader();        FastReader::Result Read(FILE* filePtr, char* buffer, unsigned int* len,                                 double timeout = -1.0);        FastReader::Result Readline(FILE* filePtr, char* buffer, unsigned int* len,                                    double timeout = -1.0);    private:        enum {BUFSIZE = 2048};        char         savebuf[BUFSIZE];        char*        saveptr;        unsigned int savecount;};  // end class FastReaderclass Waiter{    public:        Waiter();        void Reset();        bool Wait(double seconds);                    private:        struct timeval last_time;        double excess;    };  // end class WaiterWaiter::Waiter()  :  excess(0.0){    Reset();}void Waiter::Reset(){    struct timezone tz;    gettimeofday(&last_time, &tz);    excess = 0.0;   }  // end Waiter::Reset()bool Waiter::Wait(double delay){    delay -= excess;    struct timeval timeout;    if (delay >= (double)0.0)	{	    timeout.tv_sec = (unsigned long) delay;	    timeout.tv_usec = (unsigned long)(1000000.0 * (delay - timeout.tv_sec));        }	else	{	    timeout.tv_sec = timeout.tv_usec = 0;	}    fd_set fdSet;    FD_ZERO(&fdSet);    select(0, (fd_set*)NULL, (fd_set*)NULL, (fd_set*)NULL, &timeout);        struct timeval thisTime;    struct timezone tz;    gettimeofday(&thisTime, &tz);    double actual = thisTime.tv_sec - last_time.tv_sec;    if (thisTime.tv_usec < last_time.tv_usec)        actual -= ((double)(thisTime.tv_usec - last_time.tv_usec)) * 1.0e-06;    else        actual += ((double)(thisTime.tv_usec - last_time.tv_usec)) * 1.0e-06;    excess = actual - delay;    if (excess < -2.0)    {        fprintf(stderr, "Waiter::Wait() Warning! dropping behind real time ...\n");         excess = 0.0;    }    memcpy(&last_time, &thisTime, sizeof(struct timeval));    return true;}  // end Waiter::Wait()class FlowId{    public:        FlowId() : valid(false) {}        FlowId(unsigned long x) : valid(true), value(x) {}            bool IsValid() const {return valid;}        unsigned long Value() const {return value;}        void Invalidate() {valid = false;}        operator unsigned long() const {return value;}        bool Match(unsigned long x) const;    private:        bool          valid;        unsigned long value;};  // end class FlowIdbool FlowId::Match(unsigned long x) const{        if (!valid || (x == value))        return true;    else        return false;}  // end FlowId::Match()class Address{    public:        enum Domain {IPv4, IPv6, OTHER};        Address() {addr[0] = '\0';}        Address(unsigned long value, Domain domain) {Set(value, domain);}        Address(const char* string) {Set(string);}        void Set(const char* string)        {            strncpy(addr, string, 63);            addr[63] = '\0';           }        void Set(unsigned long value, Domain domain)        {            if (IPv4 == domain)            {                unsigned char* a = (unsigned char*)&value;                sprintf(addr, "%u.%u.%u.%u", a[0], a[1], a[2], a[3]);            }            else            {                sprintf(addr, "%lu", value);                }                    }        // buf is network order IPv6 address        void SetIPv6(unsigned long* buf)        {            addr[0] = '\0';            for (unsigned int i = 0; i < 4; i++)            {                unsigned short* a = (unsigned short*)(buf+i);                 char temp[16];                sprintf(temp, "%x:%x%s", ntohs(a[0]), ntohs(a[1]),                               (i < 3) ? ":" : "");                strcat(addr, temp);            }          }        void Invalidate() {addr[0] = '\0';}        bool IsValid() const {return ('\0' != addr[0]);}                bool operator==(const Address& x) const             {return (0 == strcmp(addr, x.addr));}        void PrintDescription(FILE* f) const {fprintf(f, "%s", addr);}            private:        char  addr[64]; };  // end class Address        class PacketEvent{    public:        enum EventType {INVALID, RECEPTION, TRANSMISSION, DROP, LOSS, TIMEOUT};            PacketEvent();        ~PacketEvent();                        // Generalized tracepoint node(a,[b]) NS        class TracePoint        {            public:                TracePoint() : src_port(-1), dst_port(-1) {}                TracePoint(const Address& sa) : src_addr(sa), src_port(-1), dst_port(-1) {}                TracePoint(const Address& sa, unsigned short sp) : src_addr(sa), src_port(sp), dst_port(-1) {}                TracePoint(const Address& sa, unsigned short sp, const Address& da, unsigned short dp)                  : src_addr(sa), src_port(sp), dst_addr(da), dst_port(dp) {}                bool Match(const TracePoint& p) const;                const Address& SrcAddr() const {return src_addr;}                unsigned short SrcPort() const {return src_port;}                const Address& DstAddr() const {return dst_addr;}                unsigned short DstPort() const {return dst_port;}                bool IsValid() const {return (src_addr.IsValid() || dst_addr.IsValid());}                void Invalidate()                {                    src_addr.Invalidate();                    src_port = -1;                    dst_addr.Invalidate();                    dst_port = -1;                }                void SetSrc(const Address& srcAddr)                 {                    src_addr = srcAddr;                     src_port = -1;                }                void SetSrc(const Address& srcAddr, unsigned short srcPort)                 {                    src_addr = srcAddr;                     src_port = srcPort;                }                void SetDst(const Address& dstAddr)                 {                    dst_addr = dstAddr;                     dst_port = -1;                }                void SetDst(const Address& dstAddr, unsigned short dstPort)                 {                    dst_addr = dstAddr;                     dst_port = -1;                }                void PrintDescription(FILE* f) const                {                    src_addr.PrintDescription(f);                    if (src_port >= 0) fprintf(f, ":%d", src_port);                    fprintf(f, ", ");                    dst_addr.PrintDescription(f);                    if (dst_port >= 0) fprintf(f, ":%d", dst_port);                }                                   private:                Address  src_addr;                int      src_port;  // -1 is invalid                Address  dst_addr;                int      dst_port;  // -1 is invalid        };  // end class TracePoint                EventType Type() {return type;}        void SetType(EventType theType) {type = theType;}        double Time() {return time;}        void SetTime(double theTime) {time = theTime;}                PacketEvent::TracePoint& Link() {return link;}        void LinkClear() {link.Invalidate();}        void SetLinkSrc(const Address& srcAddr)             {link.SetSrc(srcAddr);}          void SetLinkSrc(const Address& srcAddr, unsigned short srcPort)             {link.SetSrc(srcAddr,srcPort);}        void SetLinkDst(const Address& dstAddr)             {link.SetDst(dstAddr);}        void SetLinkDst(const Address& dstAddr, unsigned short dstPort)             {link.SetDst(dstAddr, dstPort);}                const Address& SrcAddr() {return src_addr;}        void SetSrcAddr(const Address& theAddr) {src_addr = theAddr;}        unsigned short SrcPort() {return src_port;}        void SetSrcPort(unsigned short thePort) {src_port = thePort;}        const Address& DstAddr() {return dst_addr;}        void SetDstAddr(const Address& theAddr) {dst_addr = theAddr;}        unsigned short DstPort() {return dst_port;}        void SetDstPort(unsigned short thePort) {dst_port = thePort;}        const char* Protocol() {return protocol;}        bool SetProtocol(const char* name);            unsigned int Size() {return size;}        void SetSize(unsigned int theSize) {size = theSize;}        double RxTime() {return rx_time;}        void SetRxTime(double theTime) {rx_time = theTime;}        double TxTime() {return tx_time;}        void SetTxTime(double theTime) {tx_time = theTime;}        unsigned long Sequence() {return sequence;}        void SetSequence(unsigned long theSequence) {sequence = theSequence;}            unsigned long FlowId() {return flow_id.Value();}        void SetFlowId(unsigned long id) {flow_id = id;}        void SetPosition(double x, double y) {pos_x = x; pos_y = y;}        double PosX() {return pos_x;}        double PosY() {return pos_y;}            private:                   EventType	    type;               double		    time;        TracePoint      link;        Address         src_addr;  // (TBD) Use NetworkAddress class here?        int             src_port;        Address         dst_addr;        int             dst_port;        unsigned int    size;        char*		    protocol;        double		    tx_time;        double		    rx_time;        unsigned long   sequence;        ::FlowId        flow_id;        double          pos_x;  // drec GPS only        double          pos_y;  // drec GPS only        };  // end class PacketEventPacketEvent::PacketEvent(): type(INVALID), time(-1.0), src_port(-1), dst_port(-1), size(0), protocol(NULL),  pos_x(999.0), pos_y(999.0){}PacketEvent::~PacketEvent(){    if (protocol) delete protocol;}bool PacketEvent::SetProtocol(const char* name){    if (protocol) delete protocol;    unsigned int len = name ? strlen(name) + 1 : 0;    if (len)    {        protocol = new char[len];        if (protocol)        {            strcpy(protocol, name);            return true;        }        else        {            perror("trpr: PacketEvent::SetProtocol() \"new()\" error");            return false;        }    }        else    {        protocol = NULL;        return true;    }}  // end PacketEvent::SetProtocol()bool PacketEvent::TracePoint::Match(const TracePoint& p) const{    if ((!src_addr.IsValid() || src_addr == p.SrcAddr()) &&        ((-1 == src_port) || (src_port == p.SrcPort())) &&        (!dst_addr.IsValid() || dst_addr == p.DstAddr()) &&        ((-1 == dst_port) || (dst_port == p.DstPort())))    {        fprintf(stderr, "");        return true;    }    else    {        return false;    }   }  // end PacketEvent::TracePoint::Match()class EventParser{    public:        virtual bool GetNextPacketEvent(FILE*           filePtr,                                         PacketEvent*    theEvent,                                         double          timeout = -1.0) = 0;            protected:        FastReader	reader;        };  // end class EventParserclass NsEventParser : public EventParser{    public:        enum NodeType {AGT, RTR, MAC};        bool GetNextPacketEvent(FILE*           filePtr,                                 PacketEvent*    theEvent,                                 double          timeout = -1.0);        };  // end class EventParserclass TcpdumpEventParser : public EventParser{    public:        bool GetNextPacketEvent(FILE*           filePtr,                                 PacketEvent*    theEvent,                                 double          timeout = -1.0);        unsigned int PackHexLine(char* text, char* buf, unsigned int buflen);        unsigned int Version(const char* hdr) const            {  return (((unsigned char)hdr[0] >> 4 ) & 0x0f);}        unsigned int HeaderLength(const char* hdr) const            {	            if(Version(hdr) == 4)	                return 4 * (((unsigned char)hdr[0]) & 0x0f);                else return 40;            }        unsigned int PayloadLength(const char* hdr)            {return (256 * (unsigned char)hdr[4] + (unsigned char)hdr[5]);}        unsigned  int TotalLength(const char* hdr)        {	      if(Version(hdr) == 4)                return (256*((unsigned char)hdr[2]) + ((unsigned char)hdr[3]));	      else		    return (PayloadLength(hdr) + 40);        }        unsigned char Protocol(char* hdr)        {            if(Version(hdr) == 4)                return ((unsigned char)hdr[9]);            else                return ((unsigned char)hdr[6]);	    }        

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜一区二区三区| 亚洲天堂免费在线观看视频| 91网站最新地址| 精品无码三级在线观看视频| 亚洲精选一二三| 国产精品天天摸av网| 91精品国产91久久久久久一区二区 | 欧美一区二区三区日韩视频| 成人av午夜电影| www.亚洲色图.com| 国产91综合一区在线观看| 久草精品在线观看| 久久精品久久综合| 奇米在线7777在线精品| 天天综合日日夜夜精品| 亚洲午夜成aⅴ人片| 性做久久久久久久久| 亚洲男人的天堂在线aⅴ视频| 国产精品久久久久久久久搜平片 | 奇米色一区二区三区四区| 天堂午夜影视日韩欧美一区二区| 一区二区三区在线观看视频 | 色哦色哦哦色天天综合| 91啪九色porn原创视频在线观看| 成人国产免费视频| 91电影在线观看| 欧美日韩高清在线| 欧美mv日韩mv| 久久99久久精品| 成人h动漫精品一区二区| 成人av在线观| 欧美日韩精品免费观看视频| 日韩欧美一级二级| 国产精品成人免费 | 五月天丁香久久| 国产成人高清在线| 欧美性猛片xxxx免费看久爱| 久久综合九色综合欧美就去吻| 中文字幕在线观看不卡| 蜜桃精品视频在线| 色婷婷综合中文久久一本| 欧美人与z0zoxxxx视频| 久久久久久久精| 亚洲mv大片欧洲mv大片精品| 国产乱码精品一区二区三区五月婷| 91香蕉视频污在线| 欧美大尺度电影在线| 国产精品久久久久影院老司| 美女诱惑一区二区| 在线观看不卡一区| 国产精品久久久久久久久晋中| 日韩国产精品久久久| 成人app网站| 国产免费观看久久| 国产精品一区二区果冻传媒| 欧美日韩亚洲综合一区二区三区| 中文字幕一区二区三中文字幕 | 久久不见久久见免费视频1| 日本久久精品电影| 樱花草国产18久久久久| www.亚洲在线| 中文字幕av在线一区二区三区| 奇米在线7777在线精品| 在线不卡中文字幕| 蜜桃视频在线一区| 日韩美女视频在线| 男女男精品视频网| 精品国精品国产| 精品一区二区三区影院在线午夜 | 久久精品国产精品亚洲综合| 91精品国产乱码久久蜜臀| 亚洲大尺度视频在线观看| 欧美日韩国产乱码电影| 日本成人在线网站| 精品国产91乱码一区二区三区| 久久精品国产亚洲a| 精品国产精品一区二区夜夜嗨| 激情六月婷婷久久| 欧美激情艳妇裸体舞| 色婷婷av久久久久久久| 日韩精品福利网| 精品国产电影一区二区| 91免费国产在线| 三级不卡在线观看| wwwwww.欧美系列| 日本高清不卡视频| 蜜桃传媒麻豆第一区在线观看| 精品国产一区二区三区不卡| 国产成人在线视频网站| 亚洲情趣在线观看| 日韩一区二区三区免费观看| 日韩欧美高清一区| 99久久久久免费精品国产| 亚洲第一电影网| 欧美激情中文字幕一区二区| 色婷婷av一区二区三区软件 | 国产亚洲一区字幕| 欧美亚洲动漫精品| 国产99精品在线观看| 日韩电影免费一区| 一区二区三区在线观看网站| 精品国产免费人成电影在线观看四季| 91丝袜美腿高跟国产极品老师| 欧美日韩视频在线第一区 | 91香蕉视频污| 国产成人综合自拍| 久久不见久久见免费视频1| 香蕉成人伊视频在线观看| 六月丁香婷婷久久| 石原莉奈一区二区三区在线观看| 国产精品第四页| 亚洲日本电影在线| 亚洲人成网站影音先锋播放| 中文字幕av资源一区| 国产精品女上位| 国产精品久久久久影院色老大| 国产亚洲人成网站| 精品99久久久久久| 精品国精品国产尤物美女| 日韩免费观看高清完整版在线观看| 国产精品传媒入口麻豆| 国产精品久久久久婷婷| 亚洲国产精品精华液ab| 中文字幕亚洲一区二区av在线 | 国产欧美精品一区二区色综合朱莉| 亚洲精品一区二区三区99| 2017欧美狠狠色| 国产精品久久久久久久久图文区| 欧美国产成人精品| 有码一区二区三区| 天堂av在线一区| 久久se这里有精品| 99精品欧美一区二区三区小说| 久久久久久久一区| 国产精品久久久久久久久图文区| 亚洲丝袜精品丝袜在线| 婷婷开心激情综合| 精品无人码麻豆乱码1区2区 | 中文字幕va一区二区三区| 亚洲激情五月婷婷| 国产制服丝袜一区| 91在线播放网址| 3d成人动漫网站| 国产三级精品视频| 五月天激情综合| 成人国产精品视频| 日韩欧美激情四射| 中文字幕综合网| 激情五月激情综合网| 色综合天天天天做夜夜夜夜做| 欧美一级二级三级蜜桃| 一区二区三区 在线观看视频| 美女脱光内衣内裤视频久久影院| 成人黄色av电影| 久久精品男人的天堂| 日本91福利区| 欧美日韩一区二区三区视频| 中文字幕av一区二区三区免费看| 日韩高清一区在线| 一本色道久久综合狠狠躁的推荐| 欧美精品一区二区三区在线| 日韩黄色片在线观看| 91猫先生在线| 激情国产一区二区 | 亚洲一二三级电影| 一本色道a无线码一区v| 国产精品久久久久久久久晋中 | 欧美老肥妇做.爰bbww视频| 成人欧美一区二区三区1314| 国产精品综合av一区二区国产馆| 欧美一区二区日韩| 欧美a级理论片| 欧美不卡一区二区三区| 蜜桃av一区二区| 精品裸体舞一区二区三区| 国产一区999| 成人欧美一区二区三区1314| 91在线一区二区三区| 亚洲免费观看视频| 欧美三日本三级三级在线播放| 亚洲成人精品一区| 欧美一级一级性生活免费录像| 日韩av中文字幕一区二区 | 亚洲欧美一区二区三区极速播放 | 精品乱码亚洲一区二区不卡| 韩国av一区二区| 亚洲三级电影网站| 正在播放一区二区| 久久福利视频一区二区| 国产精品美女久久久久久久 | 日本道在线观看一区二区| 日韩电影在线一区| 亚洲欧美怡红院| 欧美剧情片在线观看| 美女看a上一区| 亚洲嫩草精品久久| 欧美精品一区视频| 欧美喷水一区二区| 懂色av一区二区三区免费看| 性久久久久久久久|