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

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

?? netmon.c

?? 嵌入式小型TCPIP協議棧
?? C
字號:
/* Simple network monitor for 'TCP/IP Lean' (c) Iosoft Ltd. 2000

This software is only licensed for distribution with the book 'TCP/IP Lean',
and may only be used for personal experimentation by the purchaser
of that book, on condition that this copyright notice is retained.
For commercial licensing, contact license@iosoft.co.uk

This is experimental software; use it entirely at your own risk. The author
offers no warranties of any kind, including its fitness for purpose. */

/*
** v0.01 JPB 23/3/00
** v0.02 JPB 24/3/00 Fixed interference problem with multiple SLIP channels
** v0.03 JPB 27/3/00 Added ASCII TCP display
** v0.04 JPB 3/7/00   Changed default config file to TCPLEAN.CFG
**                    Revised header for book CD
*/

#define VERSION "0.04"

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <signal.h>

#include "ether.h"
#include "netutil.h"
#include "net.h"
#include "ip.h"
#include "tcp.h"

#define CFGFILE     "tcplean.cfg"   /* Default config filename */
#define CFGEXT      ".cfg"          /* Default config extension */
#define MAXNETCFG   40              /* Max length of a net config string */
#define MAXASCII    70              /* Max num of ASCII chars to be displayed */

extern int netdebug;                /* Flag to enable net packet display */
extern int tcpdebug;                /* TCP frame display */
extern int promisc;                 /* Flag to enable'promiscous' net driver */
int breakflag;                      /* Flag to indicate ctrl-break pressed */

GENFRAME genframe;
char cfgfile[MAXPATH+5]=CFGFILE;    /* Config filename */
char netcfg[MAXNETCFG+1]="??";      /* Network config string */

WORD dtypes[MAXNETS];               /* Driver types for each network */
int nnets;                          /* Number of nets in use */

WORD read_netconfig_n(char *fname, int n);
void do_receive(void);
void do_poll(void);
void break_handler(int sig);
void disp_usage(void);

int main(int argc, char *argv[])
{
    int n, args=0, err=0;
    char *p;
    WORD dt;

    printf("NETMON v" VERSION "\n");            /* Sign on */
    signal(SIGINT, break_handler);              /* Trap ctrl-C */
    promisc = 1;                                /* Promiscuous mode! */
    while (argc > ++args)                       /* Process command-line args */
    {
        if (argv[args][0]=='-')
        {
            switch (toupper(argv[args][1]))
            {
            case 'C':                           /* -C: config filename */
                strncpy(cfgfile, argv[++args], MAXPATH);
                if ((p=strrchr(cfgfile, '.'))==0 || !isalpha(*(p+1)))
                    strcat(cfgfile, CFGEXT);
                break;
            case 'T':                           /* -T: display TCP segments */
                tcpdebug = 1;
                break;
            case 'V':                           /* -V: verbose packet display */
                netdebug |= 1;
                break;
            case 'X':                           /* -X: hex packet display */
                netdebug |= 2;
                break;
            default:
                err = 1;
            }
        }
    }
    if (err)                                    /* Erorr: display usage */
    {
        disp_usage();
        exit(1);
    }
    while (nnets<MAXNETS &&                     /* Load net drivers */
           (dt=read_netconfig_n(cfgfile, nnets))!=0)
    {
        dtypes[nnets++] = dt;                   /* Save driver type */
        printf ("Net %u ", nnets);
        if (dt & DTYPE_ETHER)
            printf("Ethernet\n");
        else
            printf("SLIP\n");
    }
    if (nnets > 0)
    {
        printf("Press ESC or ctrl-C to exit\n");
        while (!breakflag)                      /* Main loop.. */
        {
            do_receive();                       /* ..handle Rx packets */
            do_poll();                          /* ..keep net drivers alive */
            if (kbhit())                        /* If key hit, check for ESC */
                breakflag = getch()==0x1b;
        }
        for (n=0; n<nnets; n++)
            close_net(dtypes[n]);               /* Shut down net drivers */
    }
    return(0);
}

/* Read nth network config item (n=0 for first) to get IP addresses and netmasks
** Return driver type, 0 if error */
WORD read_netconfig_n(char *fname, int n)
{
    WORD dtype=0;

    if (read_cfgstr_n(fname, n, "net", netcfg, MAXNETCFG))
    {
        if (!(dtype = open_net(netcfg)))        /* Open net driver */
            printf("Can't open net %u driver '%s'\n", n, netcfg);
    }
    return(dtype);
}

/* Check for incoming packets, send response if required */
void do_receive(void)
{
    int rxlen, oset, dlen, i;
    char c;
    GENFRAME *gfp;
    IPKT *ip;
    TCPKT *tcp;

    gfp = &genframe;
    gfp->g.dtype = 0;                           /* Has any net driver.. */
    if ((rxlen=get_frame(gfp)) > 0)             /* Any incoming frames? */
    {
        ip = getframe_datap(gfp);
        if (is_arp(gfp, rxlen))                     /* ARP? */
        {
        }
        else if ((rxlen=is_ip(gfp, rxlen))!=0)      /* IP datagram? */
        {
            if (is_icmp(ip, rxlen))                 /* ICMP? */
            {
            }
            else if ((dlen=is_tcp(ip, rxlen)) > 0)  /* TCP? */
            {
                tcp = getframe_datap(gfp);
                oset = gettcp_opt(tcp, 0);
                dlen = maxi(dlen, 0);
                dlen = mini(dlen, MAXASCII);
                for (i=0; i<dlen; i++)
                {
                    c = tcp->data[oset++];
                    if (c >= ' ' && c<0x7e)
                        putchar(c);
                    else if (c=='\r' || c=='\n')
                    {
                        putchar('\\');
                        putchar(c=='\r' ? 'r' : c=='\n' ? 'n' : '?');
                    }
                    else
                        putchar(' ');
                }
                putchar('\n');
            }
        }
    }
}

/* Poll the network interface to keep it alive */
void do_poll(void)
{
    int n;

    for (n=0; n<nnets; n++)
        poll_net(dtypes[n]);
}

/* Display usage help */
void disp_usage(void)
{
    printf("Usage:    NETMON [options]\n");
    printf("Options:  -c name   Config filename (default %s)\n", cfgfile);
    printf("          -t        TCP segment display\n");
    printf("          -v        Verbose packet display\n");
    printf("          -x        Hexadecimal data display\n");
    printf("Example:  NETMON -c test.cfg\n");
}

/* Ctrl-break handler: set flag and return */
void break_handler(int sig)
{
    breakflag = sig;
}

/* EOF */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣中文字幕一区| 国产精品自拍一区| 裸体在线国模精品偷拍| 国产·精品毛片| 欧美一级日韩免费不卡| 亚洲乱码国产乱码精品精98午夜| 老司机免费视频一区二区| 色噜噜久久综合| 国产农村妇女毛片精品久久麻豆| 亚洲mv大片欧洲mv大片精品| 99这里只有精品| 2021中文字幕一区亚洲| 日本中文字幕一区| 91免费精品国自产拍在线不卡| 久久亚洲捆绑美女| 蜜桃精品视频在线| 欧美日韩免费高清一区色橹橹| 国产精品国产三级国产| 国产精品中文字幕一区二区三区| 在线91免费看| 天堂一区二区在线免费观看| 欧美在线观看视频一区二区| 亚洲欧洲一区二区三区| 99久久久久免费精品国产| 26uuu久久天堂性欧美| 日本色综合中文字幕| 欧美日本一区二区| 婷婷中文字幕综合| 欧美亚洲综合网| 一区二区三区四区高清精品免费观看| 成人成人成人在线视频| 亚洲欧洲无码一区二区三区| 国产91精品免费| 国产精品国产三级国产普通话99| 岛国av在线一区| 日韩美女视频一区二区| 色综合中文字幕| 一区二区在线观看不卡| 欧美系列日韩一区| 亚洲亚洲人成综合网络| 欧美绝品在线观看成人午夜影视| 婷婷久久综合九色综合绿巨人| 欧美日韩综合在线| 日韩精品亚洲一区二区三区免费| 欧美老人xxxx18| 久久精品国产亚洲高清剧情介绍 | 日韩电影在线看| 欧美一卡二卡三卡四卡| 精品亚洲成av人在线观看| 久久精品无码一区二区三区| 大胆欧美人体老妇| 亚洲乱码日产精品bd| 欧美日韩一区二区三区高清| 麻豆精品一二三| 国产精品毛片高清在线完整版| 91日韩一区二区三区| 午夜一区二区三区视频| 精品国产第一区二区三区观看体验| 国产精品动漫网站| 成人精品电影在线观看| 亚洲日本电影在线| 欧美一区在线视频| 国产精品综合视频| 亚洲最色的网站| 精品国内二区三区| 色哟哟日韩精品| 奇米888四色在线精品| 国产精品久久久久久久久久免费看| 99r精品视频| 久久99国产精品久久99果冻传媒| 日本一二三不卡| 欧美一区二区三区视频免费| 国产+成+人+亚洲欧洲自线| 午夜精品一区二区三区免费视频| 日韩一区二区电影网| 99视频精品全部免费在线| 日韩国产欧美在线视频| 国产精品短视频| 日韩精品一区二区三区视频播放 | 国产在线精品一区二区不卡了| 中文字幕在线不卡| 欧美成人一区二区三区| 色一情一乱一乱一91av| 国产福利一区二区三区视频 | 综合网在线视频| 欧美成人精品高清在线播放| 色就色 综合激情| 国产乱淫av一区二区三区 | 欧美日韩激情一区二区三区| 成人免费毛片aaaaa**| 日韩av一区二| 亚洲va国产天堂va久久en| 亚洲欧洲性图库| 国产性色一区二区| 精品国产乱码久久久久久久| 在线不卡中文字幕播放| 在线观看亚洲成人| 成人激情黄色小说| 国产剧情av麻豆香蕉精品| 青娱乐精品在线视频| 一区二区三区免费观看| 亚洲另类春色国产| 亚洲同性gay激情无套| 国产精品久久久久国产精品日日| 久久美女艺术照精彩视频福利播放| 欧美一区二区成人6969| 精品视频资源站| 欧美亚洲国产bt| 91麻豆免费看片| 9人人澡人人爽人人精品| 福利91精品一区二区三区| 国产一区视频导航| 久久爱www久久做| 激情综合色丁香一区二区| 久久成人免费日本黄色| 精品一区二区成人精品| 狠狠色综合色综合网络| 国产乱国产乱300精品| 黄页视频在线91| 国产一区二区三区四区五区入口 | 日韩在线一区二区| 日本一区中文字幕| 天天操天天干天天综合网| 日韩精品一二区| 国产一区二区网址| 国产高清不卡一区| 成人av在线影院| 日本道在线观看一区二区| 欧美性大战久久久久久久蜜臀| 欧美亚洲精品一区| 日韩一二三区视频| 久久这里只精品最新地址| 日本一区二区三区免费乱视频| 国产精品素人一区二区| 亚洲欧洲精品一区二区三区| 亚洲一区二区三区精品在线| 日韩在线卡一卡二| 国产成+人+日韩+欧美+亚洲| 91视频.com| 91精品国产综合久久香蕉的特点| 精品日本一线二线三线不卡| 国产精品毛片a∨一区二区三区| 亚洲精品va在线观看| 日本成人在线一区| 国产成人av电影在线观看| 99精品欧美一区二区蜜桃免费| 欧美制服丝袜第一页| 精品入口麻豆88视频| 中文字幕在线一区| 午夜不卡在线视频| 国产成人精品免费视频网站| 在线观看免费亚洲| 久久一日本道色综合| 亚洲理论在线观看| 国产一区二区免费在线| 在线观看免费一区| 国产三级三级三级精品8ⅰ区| 亚洲色图视频网站| 国产在线精品视频| 欧美日韩国产免费| 欧美国产精品一区二区| 五月激情综合网| 99精品视频免费在线观看| 精品国产一区二区三区久久影院| 亚洲精品高清视频在线观看| 国产麻豆精品视频| 欧美日韩精品欧美日韩精品一综合| 久久久久久久久岛国免费| 亚洲成人自拍网| 9久草视频在线视频精品| 精品剧情在线观看| 亚洲成人1区2区| 99久久精品免费| 精品不卡在线视频| 日韩成人精品视频| 在线观看亚洲专区| 中文字幕中文字幕一区二区| 国产一区欧美日韩| 欧美一级理论片| 亚洲va国产va欧美va观看| 色综合天天性综合| 欧美激情中文字幕一区二区| 久久国产精品99久久人人澡| 欧美久久久久久蜜桃| 一卡二卡三卡日韩欧美| 成人动漫一区二区三区| 国产丝袜在线精品| 国产精品一线二线三线| 日韩丝袜情趣美女图片| 日韩高清国产一区在线| 欧美日韩国产片| 三级不卡在线观看| 欧美肥大bbwbbw高潮| 午夜精品久久一牛影视| 欧美日韩国产在线观看| 亚洲二区在线观看| 色94色欧美sute亚洲线路一久| 自拍偷拍亚洲综合| 91视频.com| 亚洲最快最全在线视频|