如题,
ipv6环境下死活不会设置混杂模式!!请大侠们救我!!!!

解决方案 »

  1.   

    没搞过,在网上找了一篇:
    http://dev.21tx.com/2005/05/04/10700.html把网卡置于混杂模式
        在正常的情况下,一个网络接口应该只响应两种数据帧:
        一种是与自己硬件地址相匹配的数据帧
        一种是发向所有机器的广播数据帧
        如果要网卡接收所有通过它的数据, 而不管是不是发给它的, 那么必须把网卡置于混杂模式. 也就是说让它的思维混乱, 不按正常的方式工作. 用 Raw Socket 实现代码如下:        setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (char*)&flag, sizeof(flag); //设置 IP 头操作选项
            bind(sockRaw, (PSOCKADDR)&addrLocal, sizeof(addrLocal); //把 sockRaw 绑定到本地网卡上
            ioctlsocket(sockRaw, SIO_RCVALL, &dwValue);             //让 sockRaw 接受所有的数据    flag 标志是用来设置 IP 头操作的, 也就是说要亲自处理 IP 头: bool flag = ture;
        addrLocal 为本地地址: SOCKADDR_IN addrLocal;
        dwValue 为输入输出参数, 为 1 时执行, 0 时取消: DWORD dwValue = 1;
        没想到这么简单吧?
      

  2.   

    2楼说的可以在ipv4下成功,可是到ipv6下就不行了,
      

  3.   

    IPv6有相应的函数吧。
    建议看《windows网络编程技术》。