如何检测用户正在查看或连接的网站

时间:2012-02-23 07:01:25

标签: python filter pcap libpcap packet-capture

我正在编写一个Python应用程序,除其他外,需要知道用户在Web浏览器中查看哪些网站,或者连接到OS X,如果可能的话,还要连接到Linux。这是为了跟踪用户访问某些网站的时间。

我知道在OS X上有一个Cocoa调用可以返回Safari中的当前页面,但这也必须至少与Chrome和Firefox一起使用,理想情况是与软件已知或未知的任何客户端一起使用。

我首先考察的是pcap来自libpcap,我可以在Python中使用pylibpcap。 pcap用于数据包捕获,理论上我理解,我可以检测数据包是否流入/流出某些“黑名单”的IP地址。这样做很有意思,但如果静态网页在浏览器中打开并保持原样,我将无法通过此机制检测到它。

首先,我是否能够使用libpcap执行上述操作?我是网络过滤之类的初学者,所以我不完全确定。

第二,有更好的方法吗?

(应用程序TimeSink for OS X有一个有趣的方法,即查看标题栏中显示的内容,以决定用户正在浏览哪个网站。这对我来说并不理想,原因有两个:(1)I可能无法最终确定标题所访问的域名,以及(2)我只能看到活动标签的标题。)

enter image description here

1 个答案:

答案 0 :(得分:1)

也许使用Twisted proxy并通过所有浏览器?

您将能够分析HTTP标头并提取相关信息。

以下是一个示例:https://github.com/nbareil/twisted-proxy