php spot
phpが使えるレンタルサーバー特集
検索グラス
トップページへ

PHPで携帯のエージェント判別法
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で携帯サイト構築

スポンサードリンク



管理人の新着ブログ記事

    プライバシーポリシー | お問い合わせ
copyright © 2003-2017 phpspot all rights reserved. powered by phpspot CMS.