目前知道数据包的拦截转发可以使用raw socket,可以实现TCP,IP等数据包头的自定义,但是需要的权限是admin(windows)或者root(linux),也可以使用第三方winpcap等,现在想知道的是类似于winpcap,他是怎么实现拦截的感觉还有更底层的开发方式,望高手指教!

解决方案 »

  1.   

    一般实现都是用raw socket,就象http looker,sniffer之类都是用raw socket方式来实现的。
      

  2.   

    楼上2位都是老好人,我说的是winpcap的工作原理  和还有没有更底层的开发方式,刚查到NDIS,但还没更查看更多的文档
    希望各位能有一个概述,以解疑虑
      

  3.   

    wincap就是驱动方式。把底层包提交给上层应用,或者上层应用把数据打包给驱动方式。
      

  4.   

    winpcap是用NDIS驱动来实现的。更具体来说,是用的协议层驱动(NDIS包括协议层驱动、中间层驱动和小端口驱动)
    楼主可以看看winpcap的源码