使用Java套接字读取IP层头

时间:2019-03-18 12:32:49

标签: java sockets tcp udp ip

是否有一种方法(在Java中)使用TCP或UDP套接字读取IP层标头(我对src和dst IP感兴趣)?

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

2 个答案:

答案 0 :(得分:1)

在操作系统级别,您需要raw sockets才能访问IP层标头。但是幸运的是,原始套接字在纯Java中不存在,因此您需要本机代码来进行相关的syscall。

有些Java库使用JNI组件进行本机调用。 Rocksaw是一个示例(我过去曾经成功使用过)。

答案 1 :(得分:0)

您可以将/ dev / socket作为InputStream打开,并读取进入套接字的数据。