⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcptable.h

📁 一个很好用的linux 下的流量监控软件
💻 H
字号:
/***   tcptable.h   -- table manipulation for the statistics display.   Written by Gerard Paul Java   Copyright (c) Gerard Paul Java 1997-2005   ***/#include <stdlib.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <curses.h>#include <panel.h>#include <netdb.h>#include <time.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <net/if_arp.h>#include <asm/types.h>#include <linux/if_packet.h>#include <linux/if_ether.h>#include <linux/if_fddi.h>#include <linux/if_tr.h>#include <net/if.h>#include <netinet/ip.h>#include <netinet/udp.h>#include "servname.h"#include "tcphdr.h"#include "links.h"#define max(a, b) (( a > b) ? a : b)#define FLAG_SYN	1#define FLAG_RST	2#define FLAG_PSH	4#define FLAG_ACK	8#define FLAG_URG	16#define CLOSED		64#define ENTRIES_IN_HASH_TABLE	1543struct tcptableent {    struct in_addr saddr;    struct in_addr daddr;    char s_fqdn[45];            /* fully-qualified domain names */    char d_fqdn[45];    int s_fstat;    int d_fstat;    unsigned int sport;    unsigned int dport;    char smacaddr[15];    char s_sname[11];           /* Service names, maxlen=10 */    char d_sname[11];    unsigned int protocol;    unsigned long pcount;       /* packet count */    unsigned long bcount;       /* byte count */    unsigned int stat;          /* TCP flags */    unsigned int win;    unsigned int psize;    unsigned long finack;    int partial;    int finsent;    char ifname[8];    unsigned int index;    int reused;    int timedout;    int inclosed;    int half_bracket;    unsigned long spanbr;    time_t lastupdate;    time_t starttime;    time_t conn_starttime;    struct tcp_hashentry *hash_node;    struct tcptableent *oth_connection; /* the other half of the connection */    struct tcptableent *prev_entry;    struct tcptableent *next_entry;};struct closedlist {    struct tcptableent *closedentry;    struct tcptableent *pair;    struct closedlist *next_entry;};struct tcp_hashentry {    unsigned int index;    unsigned int hp;            /* index position in bucket array */    struct tcptableent *tcpnode;    struct tcp_hashentry *prev_entry;    struct tcp_hashentry *next_entry;};struct tcptable {    struct tcp_hashentry *hash_table[ENTRIES_IN_HASH_TABLE];    struct tcp_hashentry *hash_tails[ENTRIES_IN_HASH_TABLE];    struct tcptableent *head;    struct tcptableent *tail;    struct closedlist *closedentries;    struct closedlist *closedtail;    struct tcptableent *firstvisible;    struct tcptableent *lastvisible;    struct tcptableent *barptr;    unsigned int baridx;    unsigned int lastpos;    unsigned int count;    unsigned int bmaxy;         /* number of lines of the border window */    unsigned int imaxy;         /* number of lines inside the border */    WINDOW *tcpscreen;    PANEL *tcppanel;    WINDOW *borderwin;    PANEL *borderpanel;};void init_tcp_table(struct tcptable *table);struct tcptableent *addentry(struct tcptable *table,                             unsigned long int saddr,                             unsigned long int daddr,                             unsigned int sport, unsigned int dport,                             int protocol,                             char *ifname, int *rev_lookup, int rvnamedon,                             int servnames, int *nomem);struct tcptableent *in_table(struct tcptable *table,                             unsigned long saddr, unsigned long daddr,                             unsigned int sport, unsigned int dport,                             char *ifname,                             int logging, FILE * logfile, int *nomem,                             struct OPTIONS *opts);void updateentry(struct tcptable *table, struct tcptableent *tableentry,                 struct tcphdr *transpacket, char *packet, int linkproto,                 unsigned long packetlength,                 unsigned int bcount, unsigned int fragofs, int logging,                 int *revlook, int rvnfd,                 struct OPTIONS *opts, FILE * logfile, int *nomem);void addtoclosedlist(struct tcptable *table,                     struct tcptableent *tableentry, int *nomem);void clearaddr(struct tcptable *table, struct tcptableent *tableentry,               unsigned int screen_idx);void printentry(struct tcptable *table, struct tcptableent *tableentry,                unsigned int screen_idx, int mode);void refreshtcpwin(struct tcptable *table, unsigned int idx, int mode);void destroytcptable(struct tcptable *table);void flushclosedentries(struct tcptable *table, unsigned long *screen_idx,                        int logging, FILE * logfile, struct OPTIONS *opts);void write_timeout_log(int logging, FILE * logfile,                       struct tcptableent *tcpnode, struct OPTIONS *opts);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -