我想做一個程序,檢測用戶是否打開/訪問某個網站,例如facebook.com。無論使用的網絡瀏覽器如何,它都必須工作。C# - 如何檢測網站是否被訪問
我想過檢查DNS緩存中的記錄,它會工作,但有一個問題 - 它會產生誤報。爲什麼,因爲有些頁面包含Facebook小部件。在這種情況下,我不需要訪問fb來讓facebook.com出現在我的DNS緩存中,它會在我訪問包含fb小部件的網站時出現。
第二個想法是尋找活動的TCP連接,但它不起作用。
最後一個想法是嗅探流量。我在Wireshark中做了簡單的測試,並且在檢查DNS緩存記錄方面也存在同樣的問題,更準確地說是誤報。此外,fb使用https協議,所以我不能看到他們的簡單地址,我必須從DNS獲取他們的IP,然後嘗試在嗅探流量中找到它們。
我沒有更多的想法如何解決這個問題。
從技術上講,如果一個頁面包含一個來自Facebook的小部件,那麼用戶訪問Facebook時可能無法完成...也許您可以添加代理中間件,如Fiddler?,然後您可以閱讀Http請求並確定如果訪問路線符合您的標準 – Gusman