使用Java插座读取IP层标头



使用TCP或UDP套接字有没有办法(在Java)读取IP层标头(我对SRC& dst ips感兴趣)?

我知道可以使用pcap(数据包捕获),但是我找不到使用套接字进行操作的方法。背后的原因是什么?

在操作系统级别,您需要原始插座才能访问IP层标头。但是幸运的是,纯Java中不存在原始插座,因此您需要本机代码来制作相关的Syscalls。

有一些JAVA库将JNI组件用于本机呼叫。一个示例(我过去成功使用)是Rocksaw。

您只需打开/dev/socket作为inputstream,然后将数据读取到插座。

最新更新