`

判断用户通过手机访问wap还是电脑直接访问

 
阅读更多

首先说最根本的解决方法:
手 机访问时,会附带发送user-agent信息,这个信息里面会有手机号码信息,那么如果能取得手机号码,则可以肯定是通过手机wap访问的。但是目前中 国移动已经屏蔽了user-agent信息,所以获取不到手机号码。有关系的朋友可以联系移动公司,把wap网站服务器的ip提交给中国移动,加入白名单 后即可取得ua信息。目前中国联通可以直接取到手机号,对联通用户此方案可完美实施。
接下来说我的解决方案:
手机访问,原理是手机通过移动公司的代理服务器进行的访问。那么我们就可以理解是一台普通电脑使用了代理服务器。当手机通过代理服务器访问的时候,http头信息会毫无疑问的包含一个信息:via。这个信息提供了有价值的判断信息。
例如河南移动取得的via信息是:

http/1.1 hazz-b-gw001-wap(infox-wisg, huawei technologies)
河南联通的via信息是:

zxwap gateway,zte technologies
其他各省的http头信息和这个大同小异,判断是否手机访问的方案就出来 了:获取http的via信息字符串看是否包含wap字符,如果有则是通过手机访问。这样做的结果是没有人能伪造手机访问,判断绝对准确。自然,这样对于 网上流行的手机wap模拟器也做了屏蔽—-从根本上屏蔽。
操作代码也很简单:

// check if wap by xhat
function check_wap() {
return stristr($_SERVER['HTTP_VIA'],”wap”) ? true : false;
}
// check over
从我查阅的资料来看,目前此方法应该是迄今互联网上准确率最高、最简单的判断手机访问方法。

以上的方法可以实现判断访问来源是手机还是电脑,但有一个问题就是,只能通过手机才能访问,支持WAP的浏览器和手机模拟器也不能访问,这给测试带来了麻烦,也有点限制死了。
下面的方案是:
通过判断浏览器代理标识符,判断是否是支持WAP的浏览器来决定访问页面。这有一个缺点就是不可能全部的列出所有手机的浏览器标识符与所支持的浏览器标识符。
下面看看实现的代码:

function check_wap()
{
if (strpos(strtoupper($_SERVER['HTTP_ACCEPT']),”VND.WAP.WML”) > 0)
{
// Check whether the browser/gateway says it accepts WML.
$br = “WML”;
}
else
{
$browser=substr(trim($_SERVER['HTTP_USER_AGENT']),0,4);
if ($browser==”Noki” || // Nokia phones and emulators
$browser==”Eric” || // Ericsson WAP phones and emulators
$browser==”WapI” || // Ericsson WapIDE 2.0
$browser==”MC21″ || // Ericsson MC218
$browser==”AUR”  || // Ericsson R320
$browser==”R380″ || // Ericsson R380
$browser==”UP.B” || // UP.Browser
$browser==”WinW” || // WinWAP browser
$browser==”UPG1″ || // UP.SDK 4.0
$browser==”upsi” || // another kind of UP.Browser ??
$browser==”QWAP” || // unknown QWAPPER browser
$browser==”Jigs” || // unknown JigSaw browser
$browser==”Java” || // unknown Java based browser
$browser==”Alca” || // unknown Alcatel-BE3 browser (UP based?)
$browser==”MITS” || // unknown Mitsubishi browser
$browser==”MOT-” || // unknown browser (UP based?)
$browser==”My S” ||//  unknown Ericsson devkit browser ?
$browser==”WAPJ” || //  Virtual WAPJAG www.wapjag.de
$browser==”fetc” || //  fetchpage.cgi Perl script from www.wapcab.de
$browser==”ALAV” || //  yet another unknown UP based browser ?
$browser==”Wapa” || //  another unknown browser (Web based “Wapalyzer”?)
$browser==”Oper”) // Opera
{
$br = “WML”;
}
else
{
$br = “HTML”;
}
}

if($br == “WML”)
{
return TRUE;
}
else
{
return FALSE;
}
}
if(!check_wap())
{
Header(“Location: “);
exit();
}

分享到:
评论
4 楼 zld406504302 2012-02-22  
系统要知道 终端上行访问wap页面是通过哪个网关ip 过来的,如果不在系统维护的ip内, 就提示错误页面,阻止访问
3 楼 ml365 2012-02-14  
zld406504302 写道
能否获取上行wap网关ip ,系统中会有个wap网关ip白名单,上行访问的时候去比对

请问什么事上行wap网关ip 这个“上行”是什么意思呵呵
2 楼 zld406504302 2012-02-10  
能否获取上行wap网关ip ,系统中会有个wap网关ip白名单,上行访问的时候去比对
1 楼 蓝沙 2011-11-14  
请问判断后要怎样更改页面跳转的路径呢?比如手机访问则路径以wap开头 电脑则以www开头?

相关推荐

    php判断电脑访问、手机访问的例子

    所以我就研究怎么用php去判断网页是电脑访问还是手机访问,然后再通过去加载不同的css来达到手机和电脑都可以正常的访问的效果。 网站查了很多资料,终于找到了一个合适、比较好用的代码,也希望能给大家一个参考。...

    asp下通过HTTP_USER_AGENT判断用户是从手机上访问,还是电脑IE上访问

    最近wap网站比较流行,我们需要判断下客户使用手机访问的还是电脑ie访问的, 好给出不同尺寸的页面,更符合用户浏览习惯,下面是核心判断代码,需要的朋友可以参考下。

    利用PHP判断是手机移动端还是PC端访问的函数示例

    最近在开发项目的时候,分别开发了PC端和手机端,需要实现,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端网站,于是有了下面这个判断函数: 示例代码: /**...

    php判断终端是手机还是电脑访问网站的思路及代码

    php function check_wap() { if (isset($_SERVER[‘HTTP_VIA’])) return true; if (isset($_SERVER[‘HTTP_X_NOKIA_CONNECTION_MODE’])) return true; if (isset($_SERVER[‘HTTP_X_UP_CALLING_LINE_ID’])) ...

    柯林WAP 8.0第八次升级100525 DIY版2010-05-27 08:56:31 |

    用户管理-->用户资料管理,增加[导出本站手机号码] 4.WEB.页面综合排版,增加UBB方法: 修正错误:[vmonth] 取防盗链接参数:[mypath] 倒计天数:[codo]2012-12-21[/codo] 日志功能:[rizhi=0_M_X_Y] 广播/微博:...

    手机模板威兔全功能版 4.3(已破解)

    Discuz威兔手机4.3商业模板是一款非常不错的手机模板支持WAP门户自定义,可以打造一个自己喜欢的discuz手机版门户,甚至做成腾讯手机门户 威兔模板拥有真正的门户类, 家园类, 论坛类功能; ( 不同于其他模板, 将Discuz!...

    手机 pdf 阅读器

    [2009.1.1] Ver 3.2.26 ...申请了签名证书(在大多数NOKIA、SE手机上有效),请通过jad安装,没有数据线的请用手机访问http://www.ismyway.com/anyview.asp在线安装进行安装(请把读取用户数据/写入用户数据改为从不...

    网钛CMS PHP版(内置小刀模板) v3.82

    [插件]修复伪静态路径时,手机版路径出现访问不到的BUG(WAP手机版 插件) [插件]修复简易小论坛 网页关键词和描述,没走 论坛参数设置 里的设定(简易小论坛 插件) [插件]修复采集参数设置点保存出现错误的BUG...

    网钛CMS PHP版(内置小刀模板) v3.82.rar

    8.[插件]修复伪静态路径时,手机版路径出现访问不到的BUG(WAP手机版 插件) 9.[插件]修复简易小论坛 网页关键词和描述,没走 论坛参数设置 里的设定(简易小论坛 插件) 10.[插件]修复采集参数设置点保存出现错误...

    柯林net9.0最新破解版

    --[优先级2]移动网关提供有UA情况下,有些浏览器不支持wap1.0/2.0,只支持电脑访问如苹果的Safari浏览器,有以下UA关键字进入电脑版--> |iPhone" /> <!--[优先级3]移动网关提供有UA情况下,当网站进入不同版本...

    JAVA上百实例源码以及开源项目

    (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,...

Global site tag (gtag.js) - Google Analytics