我想制作一个程序来检测用户是否打开/访问了某个网站,例如 facebook.com。无论使用何种网络浏览器,它都必须工作。
我想过检查 DNS 缓存中的记录,它会起作用,但有一个问题 - 它会产生误报。为什么,因为有些页面包含 facebook 小部件。在这种情况下,我不需要访问 fb 来使 facebook.com 出现在我的 DNS 缓存中,它会在我访问包含 fb 小部件的网站时出现。
第二个想法是寻找活动的 TCP 连接,但它也不起作用。
最后一个想法是嗅探流量。我在 Wireshark 中做了简单的测试,和检查 DNS 缓存记录有同样的问题,更准确地说是误报。另外,fb 使用 https 协议,所以我看不到他们的地址那么简单,我必须从 DNS 获取他们的 IP,然后尝试在嗅探的流量中找到它们。
我没有更多的想法如何解决这个问题。