繁体   English   中英

如何使用Java在接口/设备上侦听网络流量?

[英]How do I listen for network traffic on an interface/device using Java?

我正在寻求实施一个反向QoS系统(因为我没有足够的资源来使我的网络真正实现QoS)。 我所看到的关于使用Java捕获网络流量的一切似乎都指向Jpcap--一个3岁以上的图书馆,或其他类似的项目。 此外,尽管ServerSocket类似乎在正确的轨道上,但阅读java.net文档并没有多大帮助。

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

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

您正在寻找的内容仅限于通用Java应用程序的范围之外。

如果您计划记住特定的操作系统,例如Windows或Linux(以下示例),那么您可以执行一些操作。

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

对于Linux,请查看另一篇文章https://security.stackexchange.com/questions/13267/monitoring-outgoing-network-traffic

我知道这是一个侧面的答案,因为它没有提供Java代码,但这是因为Java不是以这种方式构建为与系统接口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM