blog.鶯梭庵

二〇〇五年 睦月 十六日 日曜日

アクセスログの referer を見る [/this_blog/perl]

アクセスログの referer には、ページを見に来てくれた人が、どのページから飛んできたかが記録されている。(ただし、ブラウザによっては、referer を返さなかったり、任意の referer を返すように設定できるので、信用はできない。)

それで、このブログのアクセスログを見ていたところ、Google から来る人が結構いらっしゃる。そのときは、referer の中に検索した文字列も含まれているのだが、日本語は URL エンコードされていて、そのままではなんのことだか分からない。そうなると、検索文字列を知りたくなるのが人情というもので、エンコードされた referer を受け取って、デコードしてから文字コードを EUC に変換するサブルーチンを作ってみた。

なお、Encode モジュールは perl 5.8 から標準装備になった。


use Encode;

use Encode::Guess qw(euc-jp shiftjis 7bit-jis);

my $raw_referer = shift @_ or return 'n/a';

my $referer = $raw_referer;

$referer =~ tr/+/ /;

$referer =~ s/%([a-f\d]{2})/pack 'H2', $1/egi;

my $decorder = guess_encoding $referer;

return $raw_referer unless ref($decorder);

encode 'euc-jp', $decorder->decode($referer);


「初等幾何」「篠崎史子」で最初のページにでるのか。なかなか不思議な組み合わせだ。


関連記事:

スパムプロクシ [/this_blog/perl]

Encode と Jcode [/this_blog/perl]

[この記事にコメントを書く。] [このカテゴリをまとめて読む。] [最新の記事を読む。]

RSS feed

カテゴリ

[/language] (98)
[/links] (254)
[/mac] (114)
[/music] (36)
[/origami] (406)
[/this_blog/ajax] (7)
[/this_blog/blosxom] (4)
[/this_blog/history] (12)
[/this_blog/perl] (9)

最新記事

パスワードについてのあなたの常識はもはや非常識かもしれない・その1 [/links]
ニューラルネットワークとディープラーニングで翻訳はどうなる・その5 [/language]
ニューラルネットワークとディープラーニングで翻訳はどうなる・その4 [/language]
HTTPS 対応 [/links]
ひらがな・カタカナ学習ウェブアプリ [/links]
日本語の「た」と英語の過去形 [/language]
ORI-REVO で回転楕円体を折る・その2 [/origami]
ORI-REVO で回転楕円体を折る・その1 [/origami]
折り紙建築 [/origami]
折鶴に松図小柄 [/origami]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その6 [/links]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その5 [/links]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その4 [/links]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その3 [/links]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その2 [/links]

羽鳥 公士郎