我已经收到你发给我的程序了,可是问题是,没有办法获取包的数据,不知道什么原因,lpPacket->ulBytesReceived值始终是0,空的,好奇怪哦!还有就是我没有办法得到别的机子ping 我的包,我试过的,也是lpPacket->ulBytesReceived为0。

解决方案 »

  1.   

    你先要装wpcap驱动,我装的版本是2.3的,启动程序后选择正确的网卡,如果接收不到数据挨个试一下。另外要注意你们公司是否为交换机环境,如果是则需要做一定的处理。有什么问题再问我。
      

  2.   

    驱动我装了,也是wpcap2.3的,我选择的是对的,因为我在使用testapp的程序的时候,也选的是哪个,能获取包数据,我们用的是HUB环境。就是不知道是什么原因,我怎么也不能得到别的机子ping我的包!
      

  3.   

    我做的程序是获取当前浏览网页的记录。得到Echo包需要自己分析ICMP协议,当然得不到了。你试着看一下能不能得到别人访问的网页记录,把我的程序修改一下可以做到sniffer ICMP package
      

  4.   

    kingzai 谢谢,我发现问题的所在了,原来testapp 和你写的哪个程序,如果选择一样的驱动就会出错,我选了个别的,问题就解决了!哪个wpcap驱动装了会出现两快网卡,是吗?
    问题基本解决,有什么问题再和你联系!
      

  5.   

    你最好看一下winpcap官方网站的FAQ,装驱动之前先要把以前的驱动卸载
      

  6.   

    if (pIpHdr->protocol!=6)                                           
    {                                                                   
        return;                                                         
    }
    到这儿我的程序就跳出,为什么?
    我看了一下里面的值和你哪个程序一样都是17!
    你的能执行下去,我的就不能,一样的程序为什么会出现这样的情况???
      

  7.   

    我监控的是IP包和80端口,而sniffer收到的是所有的包,
      

  8.   

    这不奇怪啊,我建立了一个收包的线程,能收到所有的包。而我这里对收到的包进行了一定的过滤
    if (pIpHdr->protocol!=6)                                           
    {                                                                   
        return;                                                         
    }
    当协议头不为6时,就退出。你可以找个sniffer工具来分析一下协议就知道了