2016-05-13 9 views
2

Ich möchte ein Programm erstellen, das erkennt, ob eine Website vom Benutzer geöffnet/besucht wurde, z. B. facebook.com. Es muss unabhängig vom verwendeten Webbrowser funktionieren.C# - So erkennen Sie, ob die Website besucht wurde

Ich dachte über die Überprüfung von Datensätzen im DNS-Cache, es würde funktionieren, aber es gibt ein Problem - es wird falsche positive Ergebnisse generieren. Warum, weil einige Seiten Facebook-Widgets enthalten. In diesem Fall muss ich fb nicht besuchen, um facebook.com in meinem DNS-Cache erscheinen zu lassen. Es wird immer angezeigt, wenn ich die Website besuche, die fb-Widgets enthält.

Die zweite Idee war auf der Suche nach aktiven TCP-Verbindungen, aber es funktioniert auch nicht.

Die letzte Idee war, Verkehr zu schnüffeln. Ich habe einen einfachen Test in Wireshark gemacht und es gibt das gleiche Problem wie bei der Überprüfung von DNS-Cache-Records, genauer gesagt False-Positives. Außerdem verwendet fb https-Protokoll, so dass ich ihre einfache Adresse nicht sehen kann, ich muss ihre IPs von DNS erhalten und dann versuchen, sie in dem geschnüffelten Verkehr herauszufinden.

Ich habe keine Ideen mehr, wie Sie dieses Problem lösen können.

+0

Whel, was Sie fragen, kann technisch gesehen nicht getan werden, wenn eine Seite ein Widget von Facebook enthält, besuchte der Benutzer facebook ... vielleicht können Sie eine Proxy-Middleware wie Fiddler hinzufügen ?, dann können Sie die HTTP-Anfrage lesen und bestimmen wenn die besuchte Route Ihren Kriterien entspricht – Gusman

Antwort

0

Haben Sie darüber nachgedacht, die IP-Adresse für Facebook zu verbieten oder zu verfolgen? ich ein nslookup für facebook.com tat und bekam:

nslookup facebook.com

Nicht autorisierte Antwort: Name: facebook.com Adressen: 2A03: 2880: F001: 1f: Gesicht: b00c: 0: 25de 31.13.76.68

0

mein Vorschlag wäre, die Titanium Web Proxy und nutzen die OnRequest Ereignis zu verfolgen, damit Anrufe an bestimmte Domänen (gespeichert in der SessionEventArgs.ProxySession.Request.Url) Eigenschaft im OnRequest Aufruf werden. Sie können sogar die Ergebnisse/Anforderungen ändern, bevor sie ausgehen. Beachten Sie jedoch, dass diese Bibliothek Ihre aktuellen System-Proxy-Einstellungen überschreibt.