Как определить, какие сайты пользователь просматривает или подключается к нему - PullRequest
0 голосов
/ 23 февраля 2012

Я пишу приложение на Python, которое, помимо прочего, должно знать, какие веб-сайты пользователь просматривает в веб-браузере или иным образом подключается к OS X и, если возможно, к Linux. Это для отслеживания того, как долго пользователь получает доступ к определенным веб-сайтам.

Я знаю, что в OS X есть вызов Cocoa, который возвращает текущую страницу в Safari, но это также должно работать как минимум с Chrome и Firefox, в идеале с любым клиентом, известным или неизвестным программному обеспечению.

Первое, что я посмотрел, это pcap через libpcap , который я могу использовать в Python с pylibpcap . pcap предназначен для захвата пакетов, и в теории, насколько я понимаю, я мог бы определить, передаются ли пакеты на определенные IP-адреса, занесенные в «черный список». Это было бы своего рода работой, но если бы в браузере была открыта статическая веб-страница и оставлена ​​как есть, я бы не смог обнаружить ее с помощью этого механизма.

Во-первых, смогу ли я сделать то, что я описал выше, с помощью libpcap? Я новичок в области сетевой фильтрации и тому подобного, поэтому я не совсем уверен.

Во-вторых, есть ли лучший способ сделать это?

(Приложение TimeSink для OS X имеет интересный подход, который состоит в том, чтобы посмотреть, что отображается в строке заголовка, чтобы решить, какой веб-сайт просматривает пользователь. Это не идеально для меня по двум причинам: (1) я возможно, не удастся окончательно решить, какой домен посещается по названию, и (2) я вижу только заголовок активной вкладки.)

enter image description here

1 Ответ

1 голос
/ 23 февраля 2012

Возможно использовать Twisted proxy и пропустить через него все браузеры?

Вы сможете анализировать заголовки HTTP и извлекать соответствующую информацию.

Вот пример: https://github.com/nbareil/twisted-proxy

...