我正在寻求实现反向 QoS 系统(因为我没有资源来使我的网络饱和以实际执行 QoS)。我所看到的有关使用 Java 捕获网络流量的所有内容似乎都指向 Jpcap - 一个 3 年以上历史的图书馆,或其他类似项目。此外,通读 java.net尽管 ServerSocket 类似乎在正确的轨道上,但文档并没有多大帮助。
我正在寻找的是实际的库源代码,或者更新的/受支持的框架。我想抓取所有来自网络的数据包并将它们放入缓冲区,然后在指定的时间后从缓冲区释放它们,具体时间取决于数据包携带的协议(protocol)。
我知道如何创建套接字应用程序,但不知道如何升级(从技术上讲)到接口(interface)。将不胜感激!
最佳答案
您正在寻找的东西完全超出了通用 Java 应用程序的范围。
如果您打算牢记特定的操作系统,例如 Windows 或 Linux(我接下来的示例),那么您可以做一些事情。
对于 Windows,任何给定的应用程序在没有驱动程序权限的情况下都无法执行此操作。 WinPCap 可能是这种情况下使用最广泛的工具,而这正是 jpcap 使用的工具。这是一个“驱动程序”,基本上只是中间人就是您的流量。
对于 Linux,请查看其他帖子 https://security.stackexchange.com/questions/13267/monitoring-outgoing-network-traffic
我知道这是一个侧面的答案,因为它没有提供 Java 代码,但那是因为 Java 根本不是为以这种方式与系统交互而构建的。
关于java - 如何使用 Java 监听接口(interface)/设备上的网络流量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464694/