【发布时间】:2016-05-13 23:13:38
【问题描述】:
我想制作一个程序来检测用户是否打开/访问了某个网站,例如 facebook.com。无论使用何种网络浏览器,它都必须工作。
我想过检查 DNS 缓存中的记录,它会起作用,但有一个问题 - 它会产生误报。为什么,因为有些页面包含 facebook 小部件。在这种情况下,我不需要访问 fb 来使 facebook.com 出现在我的 DNS 缓存中,它会在我访问包含 fb 小部件的网站时出现。
第二个想法是寻找活动的 TCP 连接,但它也不起作用。
最后一个想法是嗅探流量。我在 Wireshark 中做了简单的测试,和检查 DNS 缓存记录有同样的问题,更准确地说是误报。另外,fb 使用 https 协议,所以我看不到他们的地址那么简单,我必须从 DNS 中获取他们的 IP,然后尝试在嗅探到的流量中找到它们。
我不知道如何解决这个问题。
【问题讨论】:
-
嗯,从技术上讲,如果页面包含来自 facebook 的小部件,用户访问了 facebook...也许您可以添加像 Fiddler 这样的代理中间件?,然后您可以阅读Http 请求并确定访问的路由是否符合您的条件