2009-10-20 82 views
2

我有一个防火墙实现,我想记录所有访问的网站上的机器。所以当用户在浏览器(任何浏览器)输入地址或者点击一个链接就可以记录访问地址。 问题是我只想记录访问的地址,而不是该页面请求的其他资源(广告,iframe,Google统计等)。有没有一种方法可以通过查看HTTP或TCP头来完成此操作?或者任何其他方法。防火墙/访问网站记录器

谢谢。

+0

你能解释你是如何实现防火墙的?不是代码,但基本思想 – 2009-10-21 08:19:38

+0

它是一个数据包内容过滤应用程序,拦截MSTCP发送和接收的数据包,检查数据包是否是HTTP数据包,读取数据包中包含的数据并查看H​​TTP标头(在GET和HOST头)记录请求的地址。这样它就可以通过它的URL阻止一个HTTP地址,而不仅仅通过IP。 问题是我想创建一个访问过的网站历史记录,但只记录实际访问过的地址,并丢弃浏览器为该特定地址请求的其他资源。 – 2009-10-21 08:56:23

回答

0

一种可能的方法是使用“透明代理”:让防火墙自动将所有出站HTTP连接传输到代理。您可以在代理日志中找到所需的信息。

0

我找到的一种简单方法是使用Microsoft®ActiveAccessibility®并从浏览器的地址栏读取URL。但这在其他方面很棘手:您必须考虑到多种浏览器UI布局(至少是最流行的)以及同一浏览器版本之间的差异。某些浏览器或浏览器版本对MSAA的支持有限,并且不公开所有控件(例如Opera 10.50-10.51,但它在10.52中已修复)。