如何在Windows Server 2008中捕获环回流量

时间:2012-03-15 11:03:47

标签: sockets network-programming windows-server-2008

设定:

  • 我有客户端C连接到服务器S
  • C和S都在同一台机器上
  • 在C中,服务器地址硬编码为127.0.0.1。同样,在S中,客户端地址硬编码到127.0.0.1

问题: 我希望能够嗅探客户端和服务器之间的流量。

  • 由于配置原因,我无法将客户端或服务器移动到不同的位置(地址是硬编码的)
  • 安装环回接口并使用Wireshark + WinPcap等工具不会导致任何问题(实际上是already known,但值得一试)
  • another topic中建议的RawCap不起作用。列出了IP 127.0.0.1,但不记录任何流量。
  • 使用rinetd将流量路由到其他地方,如建议here不起作用(无法在127.0.0.1上绑定)
  • 对使用HTTP本地代理(例如Fiddler)不感兴趣,因为我还要捕获其他协议
  • 两个商业工具,特别是CommViewLocal Network Monitor,这意味着必须这样做;)

如何捕获流量? 关于我应该使用的函数或我应该阅读的文档的任何指针?

谢谢!

2 个答案:

答案 0 :(得分:1)

使用RawCap可以解决您的问题,请参阅this

答案 1 :(得分:1)

基本上你需要编写一个TDI过滤器驱动程序来实现...对于某些指针,请参阅:

另一种选择是写一个WinSock LSP

提防
自Windows 8以来,强烈建议您使用WFP (Windows Filtering Platform)进行此类操作......

虽然使用/购买现有解决方案可能更具成本效益 - 尤其是如果你不是一个非常有经验的驾驶员......