分类
技术

[转]访问网站的日本手机种类名&&运营商判别

目前日本的手机运营商主要是三大运营商:docomo、au和softbank。
其实这篇文章是2011年发布的,现在(2013年)网站浏览数据显示,移动客户端占据了将近40%的流量,而早期的非智能机访问仅有5%左右(这其中基本上只见过docomo了),剩下将近55%是普通PC。

在手机web开发中,获取和判定客户终端的类型都是通过分析”user-agent“里的信息来实现的。各运营商在user-agent里包含了的对应文字列如下:
docomo:「DoCoMo」
au・TU-KA:「UP.Browser」
softbank:「J-PHONE」、「Vodafone」、「SoftBank」

通过上面这些,可以判断手机的运营商类型。

注意:有一部分的Vodafone手机的user-agent里耶包含了「UP.Browser」,所以判断字符的时候,应该是判断user-agent是什么开头的。

1.日本各大运营商的user-agent格式

(1)i-mode [NTT DoCoMo(R)]

i-mode对应HTML1.0

i-mode对应HTML2.0

i-mode对应HTML3.0

FOMA

i-mode对应カーナビシリーズ

(2)J-PHONE [J-PHONE(R)]

J-スカイ对应机器类型:

ステーション对应机器类型

J-スカイ パケット对应机器类型

(3)au [KDDI(R)]

cdmaOne3000,5000 Series

cdmaOne200,300,400,1000Series,Digital,TU-KA

2.一些user-agent的例子

(1)docomo

type1 (MOVA)

设定了唯一ID时

type2 (FORM)

设定了唯一ID时

P-07A

也有些是没有/c10或(c100),而直接以机器类型名结束的。

(2)au

旧type

新type

在user-agent里没有直接包含机器种类名,而是包含了device id,可以在运营商的网站上找到device id和机器种类名的对照。上面的例子中,SN12和HI21就是device id。网上应该有通过device id获取机器种类名的library。

(3)softbank

SoftBank 4-2 Series(JPHONE时代的)

SoftBank 6-5 Series(JPHONE时代的)

SoftBank 3G Series(vodafone时代的)

SoftBank 3G Series(softbank时代的)

基本上、user-agent的构成是:J-PHONE(or Vodafone or SoftBank)/浏览器版本/机器种类名/其它

3.限制手机以外(普通电脑)等访问的方法

一是,可以通过user-agent内容来判断,但是http访问的头信息是可以人为模拟的。
二是,通过IP判断(即在服务器上的.htaccess里或者代码里过滤),跟大运营商的IP都有自己的范围,同时,这些范围信息是对外开放的。

各大运营商的IP范围信息参考:http://memorva.jp/memo/mobile/allow_ip.php
伪装手机访问的方法参考:http://memorva.jp/memo/mobile/ua_uid_test.php

4.host名

在判断运营商时,如果加上host的判断,会更加精确。(但是DNS的正确性不能保证)

docomo

au

softbank

5.运营商判别的PHP示例代码(其他java prel等代码可以参考底部原文链接)

6.机器类型判别PHP示例代码(取得机器类型名)

docomo

au(两种type都能取得)

softbank(只有通过x-jphone-msname的才能取得)

转自:http://blog.csdn.net/lian_zhihui1984/article/details/6828510
转自:http://memorva.jp/memo/mobile/http_user_agent.php

由宸木

半路出家,潜心学习的php入门新人。