关于winpcap如何丢包的问题?

backspray 2007-11-07 08:46:21
用pcap_loop中的回调函数抓包,如果我发现自己抓的这个包有问题,请问如何丢这个包呢?
...全文
287 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigblacktree1 2012-01-13
  • 打赏
  • 举报
回复
winpcap在传输层,属于协议驱动,也许不是很准确,不过大概可以这么理解把
bigblacktree1 2012-01-13
  • 打赏
  • 举报
回复
别听上面的放屁,你抓到数据包如果是不想传给自己的应用程序,那么你在用pcap——loop之前先设置个过滤器,这样你pcap——loop时就不会得到不想要的包,这种叫捕获数据包,winpcap你可以把他理解为一种和tcp/ip一样的协议,不过是不是在一个协议层,我也不清楚了,winpcap我觉得是在协议层。所以winpcap无法阻止你应用程序不想要的数据包到达其他协议,比如tcp/ip。如果你希望你的电脑内没有任何程序能够收到某种数据,那么我觉得你需要重写网卡驱动,但是网卡驱动现在分三层:小端口驱动,中间层驱动,协议层驱动,你该重写的应该是中间层驱动,就是在数据到达协议层之前把它过滤掉,这叫截获。当然你写在小端口驱动中应该也行,不过那还要写很多和过滤 不相关的代码,比如可能要涉及到中断处理或者DMA传输的处理等,要是linux下面还行,可以改改原来驱动代码,要是windows下面你自己重新写,越么有一定挑战
gaoguangtao 2008-01-03
  • 打赏
  • 举报
回复
Sleep(1000);
  • 打赏
  • 举报
回复
得自己写驱动.
captain_x 2007-11-09
  • 打赏
  • 举报
回复
winpcap只是把数据拷贝了一份给自己,并没有影响驱动向上层提交数据,所以无法将该数据丢弃
nuaawenlin 2007-11-09
  • 打赏
  • 举报
回复
winpcap无法将该数据丢弃,上层依然能够接收到该数据
需要丢弃,则依靠NIDS驱动

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧