在网卡的直接模式下进行抓包

相信很多朋友都遇到过这样的情况,用Sinffer,其实只是为了分析自己机器和网络的通信,这时网卡并不需要工作在混杂模式下。

而且,网卡的混杂模式还有一个问题。将会对一些基于包过滤的防火墙产生影响,这些防火墙在网卡的混杂模式下,将会对通行的数据包产生误报。(真是传说中的头脑混乱……)

看过用基于RAW-Socket的那个Sniffer吧?里头有一句这么写的:

iErrorCode=WSAIoctl(SockRaw, SIO_RCVALL,(LPVOID)&dwBufferInLen, sizeof(dwBufferInLen), &dwBufferLen, sizeof(dwBufferLen),&dwBytesReturned , NULL , NULL );

这个把RAW-SOCKET设置为RCVALL,就是把网卡设置为混杂模式。但是令我郁闷的是,我Baidu完了Google,Google完了Baidu,换了N多的Keywords,就是没找到怎么把网卡设为直接模式。(难道是我搜索引擎功夫不到家?)

其实这么写就可以了:

iErrorCode=WSAIoctl(SockRaw, _WSAIOW(IOC_VENDOR,2),(LPVOID)&dwBufferInLen, sizeof(dwBufferInLen), &dwBufferLen, sizeof(dwBufferLen),&dwBytesReturned , NULL , NULL );

刚刚接触RAW-Socket,不懂啊。。。不过经过测试,这么写可以抓本机收发的数据报,而且不会改变网卡的状态。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值