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

📄 test.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
字号:
/* Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group *//* See file COPYING 'GNU General Public Licence' for copyright details   */#include <memory.h>#include <stdio.h>#define  INCL_BASE#include <os2.h>#include <dnpap.h>#include <timer.h>#include <block.h>#include <mac.h>#include <snor.h>#include <ether.h>#include "ip.h"static BOOLEAN Rcve(CHAIN *chain, IP_HDR *ipHdr);void main(void){    MAC_IFACE   *ifaceMac;    IP_IFACE    ifaceIp;    IP_PROT     ip;        if (!IpInit())    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"IpInit");        DnpapExit(1);    }        if (!ArpInit())    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"ArpInit");        DnpapExit(1);    }        if (!EtherInit())    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"EtherInit");        DnpapExit(1);    }        if (!TimerInit())    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"TimerInit");        DnpapExit(1);    }    if (!BlockInit())    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"BlockInit");        DnpapExit(1);    }    if (!SnorInit())    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"SnorInit");        DnpapExit(1);    }        ifaceMac = MacIfaceFind("NEUS0$");    if (ifaceMac==0)    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"Iface NEUS0$ not found");        DnpapExit(1);    }        printf("%02x:%02x:%02x:%02x:%02x:%02x\n",        (WORD)ifaceMac->addr[0],        (WORD)ifaceMac->addr[1],        (WORD)ifaceMac->addr[2],        (WORD)ifaceMac->addr[3],        (WORD)ifaceMac->addr[4],        (WORD)ifaceMac->addr[5]);    ip.prot = IP_PROT_ICMP;    ip.Rcve = Rcve;    if (!IpProtRegister(&ip))    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"IpProtRegister");        DnpapExit(1);    }    ifaceIp.iface   = ifaceMac;    ifaceIp.up      = TRUE;    ifaceIp.addr    = 0x82a19104;    ifaceIp.mask    = 0xffff0000;    if (!IpIfaceRegister(&ifaceIp))    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"IpIfaceRegister");        DnpapExit(1);    }    if (!Block())    {        DnpapMessage(DMC_ERROR,TEST_ERROR,"Block");        DnpapExit(1);    }    SnorExit();}static BOOLEAN Rcve(CHAIN *chain, IP_HDR *ipHdr){    DWORD src, dst;    src = IpH2NDWord(ipHdr->src);    dst = IpH2NDWord(ipHdr->dst);    printf("ICMP %d.%d.%d.%d -> %d.%d.%d.%d %d\n",        (WORD)((BYTE *)&src)[0],        (WORD)((BYTE *)&src)[1],        (WORD)((BYTE *)&src)[2],        (WORD)((BYTE *)&src)[3],        (WORD)((BYTE *)&dst)[0],        (WORD)((BYTE *)&dst)[1],        (WORD)((BYTE *)&dst)[2],        (WORD)((BYTE *)&dst)[3],        ChainLength(chain));    return TRUE;}

⌨️ 快捷键说明

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