我想实现2个功能:
 1 sniffer系统的所有网络对话
 2 拦截我指定域名的网络包
譬如
 监控Http请求
 拦截同 www.dest.com站点通讯的网络包请问,实现上述两个功能具体实现步骤,不甚感激。

解决方案 »

  1.   

    做起来比较复杂。建议研究一下WinPcap: The Windows Packet Capture Library (http://www.winpcap.org/)
    Raw Socket似乎不能抓到所有的包。http://msdn.microsoft.com/en-us/library/ms740548(VS.85).aspx
      

  2.   

    找个开源的sniffer研究吧,三言两语怎么可能说清楚
      

  3.   


    昨日看了原理,大体思路为设置 混杂 模式,监听所有的数据包。
    如果要控制的话,是不是要欺骗Hub,让所有包经过我,我来做转发控制?
      

  4.   

    hub的话是不用欺骗的,其它的话就要ARP欺骗了
      

  5.   

    用winpcap吧,会容易些;要自己写个网络驱动就比较复杂了,或许写个LSP会好一些,但不能保证拦截所有数据包
      

  6.   

    首选开源的 Winpcap.
    现成的协议分析工具有:wireshark.
      

  7.   

    Winpcap只能捕获数据包,不能拦截
    想要拦截就要在驱动层进行过滤
    或者进行ARP欺骗
      

  8.   

    最好是用wincap,socket raw不能获取所有包
    如果要拦截HTTP可以用reset...