docomo,au,softbank,pcのいずれかを判別するコードです。
Net_UserAgent_Mobile
ユーザの送出するUserAgentよりキャリアを判別します。
使い方
<?php
require_once('Net/UserAgent/Mobile.php');
$agent = Net_UserAgent_Mobile::singleton();
if ($agent->isDoCoMo()) {
echo "docomo\n";
if( $agent->isFOMA() ) {
echo "foma\n";
}
} elseif ($agent->isVodafone()) {
echo "softbank\n";
if( $agent->isType3GC() ) {
echo "3G\n";
}
} elseif ($agent->isEZweb()) {
echo "au\n";
if( $agent->isWIN() ) {
echo "win\n";
}
} else {
echo "pc\n";
}
?>
PCでユーザエージェントを変える場合は、Firefoxアドオンの
User Agent Switcherを利用しましょう。
携帯端末スペック一覧も参考にできます。
Net_IPv4
ユーザのリモートIPアドレスよりキャリアの判別を行います
携帯のアドレス帯を指定することで、どのキャリアかを判別可能です。
使い方
<?php
require 'Net/IPv4.php';
$ip = '10.11.12.13';
$net1 = '10.0.0.1/8'; // IPアドレスはダミー
$net2 = '127.0.0.1/8'; // IPアドレスはダミー
echo Net_IPv4::ipInNetwork($ip, $net1) // bool(true)
echo Net_IPv4::ipInNetwork($ip, $net2) // bool(false)
?>
IPアドレスはダミーですが、以下のゲートウェイIPに置き換えれば、きちんとしたアクセス制御が可能。
各キャリアのゲートウェイIP
docomo |
au |
softbank
(注意) ゲートウェイIPは恒久的に同じにはならないので定期的なチェックが必要です。
携帯ゲートウェイのIPアドレス帯更新を効率的に確認する方法を使えば効率的に出来そう。
PHPで高速に携帯ゲートウェイのIPから携帯キャリアを判別するという方法もあります。
もどる:
PHPで携帯サイト構築
スポンサードリンク