Я хочу создать программу, которая определяет, был ли открыт или посещен какой-либо веб-сайт пользователем, например facebook.com. Он должен работать независимо от используемого веб-браузера.C# - Как определить, посещался ли сайт
Я думал о проверке записей в кэше DNS, это сработает, но есть проблема - он будет генерировать ложные срабатывания. Почему, потому что на некоторых страницах есть виджеты facebook. В этом случае мне не нужно посещать fb, чтобы facebook.com отображался в моем кэше DNS, он будет отображаться все время, когда я посещаю веб-сайт, содержащий виджеты fb.
Вторая идея - поиск активных TCP-соединений, но это тоже не сработает.
Последняя идея заключалась в том, чтобы обнюхивать движение. Я сделал простой тест в Wireshark, и есть та же проблема, что и при проверке записей кеша DNS, точнее ложных срабатываний. Кроме того, fb использует протокол https, поэтому я не могу видеть этот простой адрес, мне нужно получить их IP-адреса из DNS, а затем попытаться найти их в обнюхиваемом трафике.
У меня нет больше идей, как решить эту проблему.
У вас не получится просить технически, если на странице есть виджет из facebook, который посетил пользователь facebook ... возможно, вы можете добавить прокси-промежуточное программное обеспечение, такое как Fiddler ?, затем вы можете прочитать запрос Http и определить если посещаемый маршрут соответствует вашим критериям – Gusman