我正在用java开发项目,它将充当防火墙。我使用对主机文件的读/写操作阻止了特定的 url。
现在,我想阻止/过滤打开的网站上的广告。我尝试使用jpcap,java.net
但它没有帮助我?
你能建议我使用哪个包来读取通过互联网传递的数据包并使用java编程语言过滤它们。
谢谢你。
我想阻止/过滤打开的网站上的广告。
一个更简单的阻止网站的解决方案是将虚拟地址放入这些网站的主机文件中。如果你添加
127.0.0.1 www.ads.com
并且您的 PC 将无法联系该网站。在 Unix 上你可以找到主机/etc/hosts
,在 Windows 上它C:\Windows\System32\drivers\etc\hosts
如果您不想阻止整个地址,您可以实现自己的代理服务器并让浏览器使用此代理服务器。
顺便说一句:许多浏览器都有插件来支持广告拦截。你可能想先试试这些。
Jpcap 无法过滤数据包。
过滤数据包是高度特定于平台的:
netfilter_queue
和iptables
ipfw
这些用于数据包级过滤。这对于过滤 URL 并不理想,因为单个 URL 可以拆分为多个数据包。然而,它在实践中运作良好。
此外,我不知道 Java 绑定,因此您需要使用 JNI 编写自己的绑定。