C# 捕获发送到特定IP和端口的网络数据包,并将其存储在队列中

C# 捕获发送到特定IP和端口的网络数据包,并将其存储在队列中,c#,java,c,C#,Java,C,我想知道如何在到达应用层之前捕获发送到某个IP和端口的网络数据包并将其存储在队列中。稍后,根据情况,我想将数据包出列并发送到上层或销毁数据包。在.NET framework中是否可能使用C#?您需要一个代理来执行此操作,它将充当“中间人”一种方法(在使用virtuals的现代Linux系统上)是配置iptables以将数据包重新路由到不同的IP地址(例如127.x.x.x地址)编写一个应用程序,捕获/删除这些数据包,然后稍后重新发送它们。您可能需要在虚拟机中运行真正的应用程序。。。在虚拟网络层进

我想知道如何在到达应用层之前捕获发送到某个IP和端口的网络数据包并将其存储在队列中。稍后,根据情况,我想将数据包出列并发送到上层或销毁数据包。在.NET framework中是否可能使用C#?

您需要一个代理来执行此操作,它将充当“中间人”

一种方法(在使用virtuals的现代Linux系统上)是配置iptables以将数据包重新路由到不同的IP地址(例如127.x.x.x地址)编写一个应用程序,捕获/删除这些数据包,然后稍后重新发送它们。您可能需要在虚拟机中运行真正的应用程序。。。在虚拟网络层进行iptable欺骗。。。因此,真正的应用程序可以通过监听“真正的”IP地址来获取内容


但这将是混乱和复杂的。。。而且可能会导致丢包和VM稳定性问题。

只需运行ettercap或tcpdump。然后,如果您愿意,您可以使用wireshark来检查数据包,或者如果您愿意,您可以用任何您喜欢的语言编写自己的程序来处理原始数据。

您想在.net和C中这样做,但仍然用Java和C标记问题?这三种语言虽然有点相似(由于它们的共同祖先),但仍然是三种不同的语言。网络不是一门真正的语言!我是唯一一个认为OP似乎在试图编写数据包嗅探器的人吗?