亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 8951 | 回復: 2
打印 上一主題 下一主題

為什么用pcap_next_ex()捕包,總是返回0 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-11-23 15:38 |只看該作者 |倒序瀏覽
我先在pcap_open_live中設置超時時間,再用pcap_next_ex()來捕包,怎么它一直返回0,捕不到任何包呢?
在網(wǎng)上搜了半天,也沒發(fā)現(xiàn)好的解決方法,請大牛指點呀

論壇徽章:
5
IT運維版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-10 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-23 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-12 06:20:00
2 [報告]
發(fā)表于 2011-11-23 15:47 |只看該作者
代碼?

我也不會。

論壇徽章:
0
3 [報告]
發(fā)表于 2011-11-23 16:03 |只看該作者
void *packets_analyze(void *param)
{
        unsigned long packets_captured_num=0;
        struct config_result *pcfg_res=(struct config_result*)param;
        struct test_config *pcfg=pcfg_res->tc;
        struct test_result *presult=pcfg_res->tr;
        pcap_t *pcap_handle;
        char error_content[PCAP_ERRBUF_SIZE];
        char *net_interface;
        struct bpf_program bpf_filter;

        char bpf_filter_string[100] = "icmp and src 192.168.10.91";
        bpf_u_int32 net_mask;
        bpf_u_int32 net_ip;
        struct pcap_pkthdr *pkt_header;
        const u_char *pkt_data;

        printf("\npacket_analyze thread starts");
        net_interface = pcap_lookupdev(error_content);
        pcap_lookupnet(net_interface, &net_ip,&net_mask, error_content);
        pcap_handle = pcap_open_live(net_interface, BUFSIZ, 1, 6000, error_content);
        pcap_compile(pcap_handle,&bpf_filter, bpf_filter_string, 0, net_ip);
        pcap_setfilter(pcap_handle, &bpf_filter);
        int b;
         while((b=pcap_next_ex(pcap_handle,&pkt_header,&pkt_data))==1)
        {
                ethernet_protocol_packet_callback((u_char*)(&packets_captured_num),pkt_header,pkt_data);
        }
        printf("\npackets_analyze thread finished!The result is:");
        switch(pcfg->t_type)
        {
                case 1:
                        printf("\npackets sent:%ld",packets_send_num);
                        printf("\nicmp packets captured:%ld",packets_captured_num);
                        presult->frame_loss_rate=1-(double)packets_captured_num/packets_send_num;
                        printf("\nframe_loss_rate=%.2f%\n",presult->frame_loss_rate*100);
                        break;
                case 2:
                        presult->latency=(double)timedelay_sum/packets_send_num;
                        printf("\nlatency=%lfms",presult->latency);
                        break;
                case 0:
                        break;
                case 3:
                        break;
                case 4:
                        break;
                case 5:
                default:
                        break;
        }
        pcap_close(pcap_handle);
        return 0;
}

以上是一個捕包的線程函數(shù),test_config,test_result分別是存配置信息和結(jié)果的結(jié)構(gòu)體。
昨天我運行的時候,還正常,今天就不正常了,一直捕不到包。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP