【问题标题】:How to detect which websites the user is viewing or connecting to如何检测用户正在查看或连接到哪些网站
【发布时间】:2012-02-23 07:01:24
【问题描述】:

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

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

我首先查看的是pcap via libpcap,我可以在 Python 中使用pylibpcap。 pcap 用于数据包捕获,理论上据我所知,我可以检测数据包是否流入/流出某些“黑名单”IP 地址。这有点工作,但如果一个静态网页在浏览器中打开并保持原样,我将无法通过这种机制检测到它。

首先,我什至可以使用 libpcap 执行上述操作吗?我是网络过滤之类的初学者,所以我不太确定。

其次,有没有更好的方法来做到这一点?

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

【问题讨论】:

  • 这里明显的地方似乎是挂钩到 DNS 查找。
  • @Lattyware 嗯,关于如何做到这一点的任何线索?我在 Google 搜索方面一无所获。

标签: python filter pcap libpcap packet-capture


【解决方案1】:

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

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

这里是一个例子:https://github.com/nbareil/twisted-proxy

【讨论】:

  • 谢谢,会检查一下。看起来很有希望。
猜你喜欢
  • 2021-11-13
  • 2019-07-15
  • 2011-12-28
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
  • 2014-02-03
  • 2012-01-05
  • 1970-01-01
相关资源
最近更新 更多