使用Java捕获DNS数据包

3

我希望记录系统访问的网站。因此,我决定记录系统发送的数据包。我正在使用Jpcap API。我能够记录大量数据包。现在我想做的是仅过滤DNS数据包。我认为这将能够记录网站。

我需要一种方法来过滤DNS数据包。我该怎么做?

3个回答

2

一种更加丑陋的方法是在UDP的53端口上进行扫描。不过,从实现的角度来看,前面的答案看起来更为简洁。


端口号是源端口还是目标端口? - rgksugan
2
好的,由于我们将此数据包发送到服务器的众所周知的53端口。这意味着目标端口号。 PS:您可能需要检查TCP和UDP两者。 - Jack

0

这里说:

你可以查看以下主页了解有关过滤器表达式的更多详细信息。为Ethereal / Wireshark设计捕获过滤器

因此,我相信

captor.setFilter("dns", true);

应该可以运行


当我尝试您的解决方案时,抛出了异常。主线程中的异常:"main" java.io.IOException: 编译或设置过滤器时发生错误:语法错误 在 jpcap.JpcapCaptor.setFilter(Native Method) 在 test1.JpcapTip.main(JpcapTip.java:25) Java 结果:1 - rgksugan

-1

我发现在53端口处理所有数据包很容易,所以我使用了这个过滤器

udp目的端口为53

感谢Jack的提示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接