IPアドレスで携帯を振り分ける方法

携帯とPCの振り分けや携帯各社の振り分けとして、広く使われているのがユーザーエージェント(UA)。UAによる振り分け方法は検索すればいくらでも情報が出てくるので省略。

    • -

ご存知の通りUAはブラウザ側で自由に変更(偽装?)できるので、厳密に携帯電話からのアクセスに限定したい場合などには、十分ではありません。そこで、より高精度で携帯電話からのアクセスかを判定するには、IPアドレスで振り分けなければなりません。


完全に携帯IPアドレスに制限したい場合にはサーバー側で設定するのが正しい選択ですが、このページ/コンテンツだけはIPアドレスで振り分けたい、というスクリプト側でのちょこっと対応に関するtipsです。


さて、論よりソース。

<?php
if (isDoCoMoIP()) {
    //ドコモだけの処理

}

/**
 * DoCoMoケータイからのアクセスかをIPアドレスをもとにチェックする関数
 */
function isDoCoMoIP()
{
    require_once 'Net/IPv4.php';// PEAR Net_IPv4
    // DoCoMo のIP帯域をセット
    $ip_list = array(
        '210.153.84.0/24',
        '210.136.161.0/24',
        '210.153.86.0/24',
        '124.146.174.0/24',
        '124.146.175.0/24'
    );
    foreach ($ip_list as $ip) {
        if (Net_IPv4::ipInNetwork($_SERVER['REMOTE_ADDR'], $ip)) {
            return true;
        }
    }
    return false;
}

// au, softbank 同様につき省略

?>


PEARライブラリのNet_IPv4を使えば処理はこれだけです。
http://pear.php.net/package/Net_IPv4


IPアドレス帯域は携帯各社のサイトに載っているので、追加更新するだけです。
DoCoMoのIPアドレス帯域
auのIPアドレス帯域
SoftbankのIPアドレス帯域

      • -

[ 追記 ]

.htaccess で制限する場合には以下のサイトがとっても便利です。
携帯端末以外のIPを制限するhtaccessを簡単生成 『Mobile IP htaccess Maker』 - HTMLタグボード

      • -

[ PR ]

真夜中ナビ 深夜営業のお店モバイルモバイル会員限定コンテンツを作りました。


お店の写真を写メールで投稿したり、深夜族ともだちにプチメを作ったりといった感じになっています。深夜営業のお店によく行かれる方は、写真や情報を投稿して頂けると幸いです。


なんだかWEB2.0というとダサいので、WEB1.5と言っておきます…。ネット業界以外の方とお話しすると、いまだに2.0と言われたようなことが(ビジネス的に)流行っていると思われていて、ツッコミたくなる今日この頃です。