ipv6环境下,如何设置socket使网卡成混杂模式?????????????? 如题,ipv6环境下死活不会设置混杂模式!!请大侠们救我!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没搞过,在网上找了一篇: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楼说的可以在ipv4下成功,可是到ipv6下就不行了, IPv6有相应的函数吧。建议看《windows网络编程技术》。 一个结构数组看不懂 如何设置无边框 效果和设置border 为none一样 OPENGL的窗口位置定义问题 为什么CInternetSession下载的网页内容和浏览器看到的内容不同 怎么改变工具条的背景颜色? ADO效率问题 请问怎么改变窗口标题的高度? 用windows socket api 写一个console下面得小程序,出现以下错误,如何解决? 请教Windows线程ID和HANDLE的相互转换 帮帮忙,对您是举手之劳,我可不动VC 如何编程枚举“控制面板”中的内容,并且打开枚举到的项? 如何你懂VC就看看吧,拉兄弟一把吧
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;
没想到这么简单吧?
建议看《windows网络编程技术》。