CGIで携帯とPCの振分けが出来る環境か??

キャリアの判別が出来る環境かどうかチェックしましょう



CGIに対してアクセスしてくる端末が、携帯電話なのかPCなのか、はたまたPC上にあるシミュレータなのかをチェックしたいというお問い合わせが複数ありまして、取敢えず、CGIぽん様のサイトを参考にさせていただきながら、ユーザーエージェントとリモートホストの情報を組み合わせて判断するスクリプトを考えてみたのですが、サーバーによって、リモートホストが取得できなかったりする場合も在るようです。

それならば、自分の使っているサーバーでは果たしてリモートホスト、ユーザーエージェント、IPアドレスなどが取得できているのかどうか確認するためにはどうしたらいいのか?
とってもシンプルな下記のCGIスクリプトをメモ帳に貼っていただいて(サーバーによっては、改行コードをラインフィードにするなどの処置が必要らしいのですが)アップロードして、属性を755などCGIが動く状態に変更して、そのアドレスに自分でアクセスしてみてくださいませ。

http://www3.kcn.ne.jp/~tomate/monitor/koneta/career_chekcer.cgi

career_checker.cgi
#!/usr/local/bin/perl
# ************** 環境変数のテスト *************
# CGIをUPする予定のサーバーで使える環境変数をチェックします。
# 内容は、自分の使ってみたい変数を追加して使用してください。
# 携帯からのアクセスかどうかをユーザーエージェントとリモートホストを組み合わせて
# 判断するスクリプトと組み合わせています。
#


$a1=$ENV{'HTTP_USER_AGENT'};
$host=$ENV{'REMOTE_HOST'};

# チェックしたい環境変数の内容をここに列挙してください。(携帯からのアクセスの場合を考えてシンプルに記述してください)
#--------------------------------------------------------------------------
$Checker =<< "HIA";
ユーザーエージェント = $ENV{'HTTP_USER_AGENT'}<BR>
リモートホスト = $ENV{'REMOTE_HOST'}<BR>
リモートホストのIPアドレス情報 = $ENV{'REMOTE_ADDR'}<BR>
HIA
#--------------------------------------------------------------------------

if (((index($a1,"UP.Browser")>0) && ($host =~ /\.(ezweb|ido)\.ne\.jp$/)) ||
( (index($a1,"UP.Browser")==0) && ($host =~ /\.(ezweb|ido)\.ne\.jp$/) ) || ( (index($a1,"DoCoMo")>=0 && $host =~ /

\.docomo\.ne\.jp$/) ) ||
((index($a1,"J-PHON")>=0 || index($a1,"Configuration")>=0) && $host =~ /\.jp-[ckqt]\.ne\.jp$/)) {
   $comment='携帯からですね?';
} else {
    $comment='携帯からじゃないですね?';<BR>
}
print <<"HIA";
content-type:text/html\n
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN" http://www.openwave.com/DTD/xhtml-basic.dtd>
<html><body>
$comment<br>
$Checker
</body></html>
HIA
exit();
__END__

このサイトを構築しているKCN様のサーバーでは3変数とも取得可能なようですので、上のデモをクリックした内容と同じ内容が表示できれば、多分、ユーザーエージェントとリモートホストによる組み合わせによる振分けは可能だと思われます。

IPアドレスによる振分けは・・・ちゃんと振り分けようとしたらそれが一番安全なのかもしれませんが、データーが膨大すぎて、私は今は考えたくありません。
どうしても、という方は頑張って他のサイト様を探してくださいませ!!
このサイトの場合、データにアクセスしていただく手段は携帯でもPCでもどちらでも有難いっていうのが現状でございます(笑)。見に来てくださってどうもありがとう御座います!!

2006.04.15

[HOME][とまて週報TOP]