2011-01-10 10 views
3

ユーザーが訪れているURLとHTMLコンテンツを追跡し、より多くの情報をユーザーに提供するための適切なソリューションを探したいと思います。ソリューションは、エンドユーザーに最小限の影響を与える必要があります。どのブラウザでも訪問したURLとそのHTMLをキャプチャする方法

私は、さまざまなブラウザ用のプラグインを書きたくありません。維持するのは難しいです。 私はユーザーのプロキシ設定を変更したくないので、プロキシメソッドを受け入れません。 私のアプリケーションはC#で記述され、Windowsにターゲティングされています。このソリューションが他のOSもサポートできるのなら最高です。

私の研究に基づいて、私のために働くように見える方法を見つけましたが、そのすべてに欠点があります。どちらが最善であるかはわかりません。

  1. 使用WinPcapの WinPcapのは、ユーザーの設定を変更することなく、すべてのTCPパケットを盗聴だけ私に許容可能であるWinPcapの設定を、インストールする必要があります。しかし、私には2つの質問があります: a。 TCPパケットをURLとHTMLに変換する方法 b。パフォーマンスに本当に影響しますか?私はすべてのTCPトラフィックがこの要求に対してオーバーヘッドであるかどうかわかりません。

  2. さまざまなブラウザの履歴ファイルを検索 この方法は簡単なものですが、解決策が安定しているかどうかは疑問です。私は、ブラウザが履歴を安定して書き込むかどうか、また書き込むタイミングがわからない。私のアプリケーションは、ユーザーが現在のページを離れる前に情報をポップアップします。ユーザーがブラウザを閉じたときに、ブラウザが履歴ファイルに書き込みを行った場合、解決策は機能しません。

  3. FindWindowまたはaccessiblityオブジェクトまたはCOMインターフェイスを使用して、URLを含むUI要素を見つけます。 この方法は完全ではないことがわかります。たとえば、ChromeではアクティブなタブのURLのみが表示されますが、すべて表示されません。 もう1つの欠点は、HTMLコンテンツを取得するためにURLをもう一度要求しなければならないことです。

コメントや提案は大歓迎です。 ところで、私はスパイウェアをやっていません。アプリケーションは、WebページからすべてのRSSフィードを見つけてエンドユーザーに表示しようとしています。私は簡単にブラウザプラグインでそれを行うことができますが、私は本当に単一のUIを持つ複数のbroswersをサポートしたい。ありがとう。

答えて

0

これは非常に古い投稿ですが、私はちょうど入力を与えると考えました。

WinPcapのアプローチ1が最適です。これは、他のインストールされているアプリケーションの組み込みブラウザでさえ、どのブラウザでも機能します。この方法はリソースの消費量も少なくなります。

HTTPパーサーを持つライブラリPcap.Netがあります。 httpストリームを構築し、そのhttpresponsedatagramを使用して、アプリケーションで使用できる本体を解析することができます。

このリンクは私に多くの洞察を与えて助けた - Tcp Session Reconstruction with Winpcap

関連する問題