【问题标题】:How do I listen for network traffic on an interface/device using Java?如何使用 Java 监听接口/设备上的网络流量?
【发布时间】:2014-06-21 07:05:47
【问题描述】:

我正在寻求实现反向 QoS 系统(因为我没有资源来使我的网络饱和以实际执行 QoS)。我所看到的关于使用 Java 捕获网络流量的所有内容似乎都指向 Jpcap - 一个 3 年以上的库,或其他类似项目。此外,阅读 java.net 文档并没有太大帮助,尽管 ServerSocket 类似乎在正确的轨道上。

我正在寻找的是实际的库源代码,或者为此提供的更新/支持的框架。我想抓取来自网络的所有数据包并将它们放入缓冲区,然后在指定的时间后从缓冲区中释放它们,具体取决于数据包所携带的协议。

我知道如何创建套接字应用程序,但不知道如何升级(从技术上讲)接口。非常感谢您的帮助!

【问题讨论】:

    标签: java networking network-programming qos


    【解决方案1】:

    您正在寻找的只是通用 Java 应用程序的范围之外。

    如果您打算记住特定的操作系统,例如 Windows 或 Linux(我的以下示例),那么您可以做一些事情。

    对于 Windows,如果没有驱动程序权限,任何给定的应用程序都无法执行此操作。在这种情况下,WinPCap 可能是使用最广泛的工具,而 jpcap 正是使用这种工具。它是一个“驱动程序”,基本上只是中间人为您提供流量。

    对于 Linux,请查看其他帖子 https://security.stackexchange.com/questions/13267/monitoring-outgoing-network-traffic

    我知道这是一个侧面的答案,因为它没有提供 Java 代码,但那是因为 Java 根本不是为了以这种方式与系统交互而构建的。

    【讨论】:

    • 所以你建议我先用传统程序捕获一些数据,然后将其读入Java程序来模拟网络?我也可以在 C/C++ 中执行此操作,如果这会打开更多选项。
    • 这将大大增加您的选择,尤其是在 Linux 平台上。不过,对于 Windows,请查看将 Winpcap 与 C++ 结合使用,您可以实时执行此操作,而无需等待流量被转储。
    猜你喜欢
    • 1970-01-01
    • 2021-09-16
    • 2014-07-22
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多