これは、C# & .Net Framework 4.0 で作成しました


はじめに
IIS の HttpModule です。

特定の URL へアクセスがあると、イベントログへ書き出します。
それだけです。

こんな感じのイベントログが出力されますよ。
ver1.1.0.0 以降からクライアントのIPアドレスなども出力されるようにしました。



動作環境
Microsoft .NET Framework4.0 & Microsoft IIS

IIS 管理マネージャから、HttpModule として登録してください。


インストール方法と使用方法

  1. まず、IIS をセットアップしてください。

  2. 次に、ランタイム(.NET Framework4.0)をセットアップします。

  3. sWebMonitor.lzh をダウンロードします。

    ダウンロードしたファイルを解凍しします。
    (LHAは、吉崎栄泰氏が、著作権を所有)

  4. sWebMinitorInit.exe を管理者権限で実行して、イベントログにソースを作成してください。
    (IIS{HttpModule} は低い権限で動作するため、イベントログのソース作成の権限がないため)

  5. IISの管理マネージャから、.NET Framework4 用のアプリケーションプールを作成しておいてください。

  6. お好きなWebアプリケーション(アプリケーションプールが .NET4 でないとダメです)のディレクトリ直下の「Bin」下に、sWebMonitor.dll 配置してください。
    既定のWebルートであれば「C:\InetPub\wwwroot\bin」だと思う。

  7. Web.configを編集してください。
    例えば、こんな感じ
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <modules>
                <add name="sWebMonitor" type="jp.dip.rocketeer.HttpModule.sWebMonitor,sWebMonitor" />
            </modules>
        </system.webServer>
        <appSettings>
            <add key="sWebMonitor_HeaderList" value="X-Forwarded-For,Forwarded-For,SP-Host,Client-IP,FORWARDED,X-Locking" />
        </appSettings>
    </configuration>


  8. 上記のconfiguration>appSettings にイベントログに一緒に記録したいHTTPリクエスト・メッセージのヘッダ名をリスト(カンマ区切り)化できます。

  9. レジストリを編集してください。
    対象は、HKLM\Software\sWebMonitor 下の REG_SZ(文字列)
    値の名前が、監視するURLパス(先頭一致)になります。(複数ヒットの場合は、最大一致のみが有効)
    値のデータが、イベントログに書き出される文章になります。
    「sample.reg」と同じ内容


  10. IIS を再起動してください。

  11. 監視対象の URL へアクセスしたらイベントログにログが出力されていれば成功です。


削除方法
sWebMonitor.dll を削除して、該当するレジストリを削除して、web.config の該当箇所を削除して、IISの再起動です。

当然ですが、悪用厳禁です。


免責など
当然ですが、悪用厳禁です。

プログラムの改変については、各自の責任で行う分については、自由に行って結構です。(参考になりましたメールをくれると、うれしい...(*^_^*))

修正BSDライセンスで配布します。


Version1.2.0.0DownLoad(sWebMonitor.lzh as 24,872byte) (sWebMonitor.lzh.base64)

履歴



mail to active@window.goukaku.com