个人入侵检测系统的实现 系统的总体结构 PIDS总体设计如图5: 图5 PIDS总体设计 系统捕获网络中的数据包,解码IP、TCP、UDP的头部各字段的信息,然后对解码后的数据进行分析统计,并对其做出判断。 系统将入侵信息记录入数据库,并通过告警窗口显示。 数据包捕获模块实现 PIDS的数据包捕获是通过调用Winpcap中的动态库函数实现的。使用pcap_findalldevs函数获取网络设备链表。获取失败终止程序并打印出错误报告,成功就打印出所有网络设备信息以供选择。在选择好进入的网络设备后,对该网络设备进行相应的配置,然后使用pcap_loop函数捕获数据包。 首先获得网卡信息: /* 返回网络设备的链表,以供选择 */ if(pcap_findalldevs(&alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf); exit(1); } /* 选择列表 */ for(d=alldevs; d; d=d->next) { printf("%d. %s\n", ++i, d->name); if (d->description) printf(" (%s)\n", d->description); else printf(" (No description available)\n"); } if(i==0) { printf("\nNo interfaces found! Make sure WinPcap is installed.\n"); return -1; } printf("Enter the interface number (1-%d):",i); scanf("%d", &inum); 接下来根据所选择的数据进入该网卡: for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++); 对选择的网卡进行
首页 上一页 2 3 4 5 6 7 8 下一页 尾页 5/10/10