私は、いくつかのウェブサイトがユーザによって開かれたか訪問されたかを検出するプログラムを作りたいと思っています。使用されているWebブラウザに関係なく動作する必要があります。C# - ウェブサイトが訪問されたかどうかを検出する方法
私はDNSキャッシュでレコードをチェックすることを考えましたが、うまくいくでしょうが、問題があります - それは偽陽性を生成します。なぜなら、一部のページにはFacebookのウィジェットが含まれているからです。この場合、fbにアクセスしてfacebook.comをDNSキャッシュに表示する必要はありません.fbウィジェットを含むWebサイトにアクセスするたびに表示されます。
2番目のアイデアは、アクティブなTCP接続を探していましたが、それもうまくいきません。
最後のアイデアは、トラフィックをスニッフィングすることでした。私はWiresharkで簡単なテストを行いました.DNSキャッシュレコードのチェックと同じ問題がありました。正確には誤検出です。また、fbはhttpsプロトコルを使用しているので、単純なアドレスを見ることができないので、DNSからIPを取得してからスニッフィングされたトラフィックでIPアドレスを見つけなければなりません。
私はこの問題を解決する方法はもうありません。
技術的に言えば、ページにはFacebookのウィジェットが含まれている場合、ユーザーはFacebookにアクセスしました...おそらく、Fiddlerのようなプロキシミドルウェアを追加できますか?訪問したルートが条件に一致する場合 – Gusman