インタ-ネットエクスプローラーを起動した時に、
クライアント側のパソコンとサーバ側のHTTP通信ログ(すべてのヘッダ)を取得する
アプリケーションをVC++で作りたいのですが、
通信ログを取得するためにはどのようにしたらよいのでしょうか?
WindowsAPIやMFCにこれらの処理を実現するのに有効なものはあるのでしょうか?
申し訳ありませんが教えてください。
たしか、Win2kはロウソケットサポートしてるんで
そいつを使ってください(私自身Win2kで使った経験は無いです)
ロウソケットの説明をし出すと長くなるので
機会があったらするかも知れません
もっと簡単な方法としては、IEのプロキシを自ホスト適当ポートに設定して
そのポートで中継サーバを動かしてしまう手もあります
-------------------------------------------------------
他に、wsock32.dll自体を書き換えてしまう方法(何だったかのウィルス)も
あるようですが・・・当然私ごときでは出来ません・・・
返答ありがとうございます。
>たしか、Win2kはロウソケットサポートしてるんで
>そいつを使ってください(私自身Win2kで使った経験は無いです)
これは、どういう意味なのでしょうか?
Win2k上ではロウソケットを使ったプログラムが実行可能という意味ですか?
つまり、OSがWin2kでないとこの手は使えないということですか?
>もっと簡単な方法としては、IEのプロキシを自ホスト適当ポートに設定して
>そのポートで中継サーバを動かしてしまう手もあります
具体的にはどのようにすればよいのでしょうか?
サーバプログラムを作成するのでしょうか?
そうすることで、何故IP、TCPヘッダを含めた通信ログ情報が取得できるのでしょうか?
もう少し詳しく教えてください。
私のやりたいことをもう一度詳しく説明すると、インターネットエクスプローラーを起動した時にその通信ログを
取得し、表示するアプリケーションを作り、その表示方法を工夫するということです。
ある人に受けたアドバイスでは、IEを起動し、HTMLデータを受信する時に、WindowsにからあるメッセージがWinMainに送信されるはずなので、そのメッセージをフックすれば、その引数より通信ログを取得できるのでは、とアドバイスを受けました。
でも、そのメッセージが何なのか、存在するのかがわかりません。
そのようなメッセージをもし知っていましたら教えてください。
また、これらのことをやるのに参考になるホームページや本があれば教えてください。よろしくお願いします。
>具体的にはどのようにすればよいのでしょうか?
>サーバプログラムを作成するのでしょうか?
そうです、IEから受けたデータをサーバに丸投げし、サーバからのデータをIEに返します。
>そうすることで、何故IP、TCPヘッダを含めた通信ログ情報が取得できるのでしょうか?
という事は、ストリームソケットの内容では足りないと言う事ですか?
HTTPクライアントである以上、ソケットのデータで十分だと思ったので、そう解答しましたが、
IPヘッダ、TCPヘッダがどうしても必要ならば、ロウソケットで拾うしか無いでしょう
>Win2k上ではロウソケットを使ったプログラムが実行可能という意味ですか?
その筈です、Win98,95はサポートしてません、NTは忘れました・・・
XPはサポートすると聞いています
>ある人に受けたアドバイスでは、IEを起動し、HTMLデータを受信する時に、WindowsにからあるメッセージがWinMainに送信されるはずなので、そのメッセージをフックすれば、その引数より通信ログを取得できるのでは、とアドバイスを受けました。
>でも、そのメッセージが何なのか、存在するのかがわかりません。
>そのようなメッセージをもし知っていましたら教えてください。
残念ながら知りません。