如何检测仅来自本地网络而非来自 ISP/互联网的数据包?

如何检测仅来自本地网络而非来自 ISP/互联网的数据包?

我正在使用 JNetPcap(libpcap/winpcap 的 Java 版本)构建带宽监视器。我需要识别家庭网络中的数据包,这样我就不会将它们计入使用的总带宽。我可以检查数据包的来源和目的地,但为此我需要确切知道家庭网络上可能存在哪种类型的数据包。

另一种方法是使用 libpcap 提供的内置过滤功能:http://jnetpcap.com/userguide/filter但我想这是一个针对 stackoverflow 的问题。

简而言之:您能否列出家庭网络上可能出现的不同数据包,以及通过检查数据包内容来检测它们的最快/最有效的方法?换句话说,您能帮我建立一个检测家庭网络上数据包的算法吗?

答案1

检测数据包是来自还是发往家庭网络的算法非常简单,因为大多数家庭网络在网络地址转换后面使用单个私有 IP 子网。

只需查看家用电脑的 NIC,然后使用网络掩码计算其 IP 子网。具有该子网 IP 地址的数据包来自“家庭网络”。

相关内容