« 国内でARP Spoofing による攻撃が行われていた模様 | メイン | 「微妙・五言絶句」をF#に移植してしまった件 »

アクセスログ解析ツール

logana-small

現在、利用しているサーバでは referer がアクセスログに載っていないので、このサーバでは CGI などを組み合わせてログを取っています。解析ツールが弱いのも困るので、解析ツールを新調してみました。元の解析ツールは IronPython を使ったスクリプトですが、新調したのは C# で書いた GUI アプリケーションになっています。IronPython 版も何回かリファクタリングしているので C# でのコードは最新版に基づいています。

少々、工夫しているところは switch-case で多分岐する代わりに Dictionary とdelegateで実装しているところかな。まあ、Python とかでの定石をぱくっているので斬新とは程遠いですが。今後の拡張も考えてこういう実装になっております。

public delegate void InterpretingDelegate(string[] queryCells);

中略

public class AnalyzingQuery {
private Dictionary<string, InterpretingDelegate> interpretMap;

中略

private void DeclareInterpretMap()
{
if(interpretMap == null)
{
interpretMap = new Dictionary<string , InterpretingDelegate>();

中略

interpretMap.Add("www.baidu.jp", delegate(string[] queryCells)
{
if (queryCells[0] == "wd")
{
searchString = queryCells[1];
}
});

中略

}
}
public void Interpret(string queryItem)
{
string[] queryCells = queryItem.Split('=');

if (interpretMap.ContainsKey(host)) {
IterpretingDelegate id = interpretMap[host];
if (id != null) {
id(queryCells);
}
}
}
}
List. 1

このエントリーをはてなブックマークに追加 Save This Page to del.icio.us このエントリーをlivedoorクリップに追加 このエントリーをニフティクリップに追加 このエントリーをBuzzurlに追加このエントリーをBuzzurlに追加 このエントリーをFC2ブックマークへ追加 このエントリーをnewsingへ追加 このエントリーをYahoo!ブックマークに追加

トラックバック

このエントリーのトラックバックURL:
http://www.cworld2000.com/cgi-bin/mt/mt-tb.cgi/433

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年06月08日 22:42に投稿されたエントリーのページです。

ひとつ前の投稿は「国内でARP Spoofing による攻撃が行われていた模様」です。

次の投稿は「「微妙・五言絶句」をF#に移植してしまった件」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

検索

この Weblog について

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type 3.35