【问题标题】:C# Listens to HTTP Requests without using WinPcap?C# 在不使用 WinPcap 的情况下监听 HTTP 请求?
【发布时间】:2011-07-03 21:21:38
【问题描述】:

我可以在不使用 WinPCap 的情况下使用我的应用程序收听传出的 HTTP 请求吗?

【问题讨论】:

  • 是的,肯定还有其他过滤器驱动程序可以让您窥探 TCP/IP 驱动程序堆栈。尽管它们都以相同的方式工作,但该机制在 Windows 驱动程序模型中是固定的。更好的有一个 UI 和一个为你解码 IP 帧的破解程序。 Ethereal、Fiddler 和 WireShark 是比较知名的。嗯,他们在后台使用 winpcad 的几率是多少?高。
  • 所以,如果我想让我的应用程序嗅探 TCP/IP,我需要使用 WinPcap,以便它使用 DLL 库和所有这些扩展我的应用程序..?
  • 这不是提问的好方法。您必须为 SO 的贡献者留出空间来弄清楚 1:为什么您不喜欢使用标准解决方案,2:为什么需要窥探网络流量,3:您尝试了什么,4:为什么它失败了。没有这些信息,这只是一个购物问题。哪些是题外话。
  • @Hans,我认为 Ethereal 和 Wireshark 都使用 winpcap,但 fiddler 将自己插入为网络代理。

标签: c# .net http httpwebrequest packet-sniffers


【解决方案1】:

Fiddler 和 Charles 这样做的方式是将自己插入为系统代理。这样,当浏览器(或.net)发出 HTTP 请求时,它会通过代理,因此可以被跟踪。因此,要做到这一点,您需要编写一个代理并弄清楚如何将其设置为您希望跟踪的网络应用程序使用的代理。如果写得合理,它应该使用系统定义的代理,在这种情况下,它就是你的嗅探器应用程序。

【讨论】:

【解决方案2】:

我不确定它是否适用于出站数据包,但您可以将套接字设置为 SOCK_RAW,它将接收所有入站数据包。

【讨论】:

  • 你有例子吗?因为如果你有入站,你可以猜测出站数据包.. :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
相关资源
最近更新 更多