ule.GetCurSel();Р?if(0==if_index || CB_ERR == if_index)Р?{Р MessageBox(_T("请选择一个合适的网卡接口"));Р return -1;Р?}Р?if(CB_ERR == filter_index)Р?{Р MessageBox(_T("过滤器选择错误"));?Р return -1;Р?}Р?/*获得选中的网卡接口*/Р?dev=alldev;Р?for(count=0;count<if_index-1;count++)Р dev=dev->next;Р?if ((adhandle= pcap_open_live(dev->name, // 设备名Р 65536, //捕获数据包长度?Р 1, // 混杂模式(非意味着是混杂模式)Р 1000, // 读超时设置Р errbuf // 错误信息Р )) == NULL)Р?{Р MessageBox(_T("无法打开接口:"+CString(dev->description)));?Р pcap_freealldevs(alldev);Р return -1;Р?} Р?/*检查是否为以太网*/Р?if(pcap_datalink(adhandle)!=DLT_EN10MB)Р?{Р MessageBox(_T("这不适合于非以太网的网络!"));Р pcap_freealldevs(alldev);Р return -1;Р?}Р?if(dev->addresses!=NULL)?Р netmask=((struct sockaddr_in *)(dev->addresses->netmask))->sin_addr.S_un.S_addr;Р?elseР netmask=0xffffff; Р?//编译过滤器Р?if(0==filter_index)