`

判断用户通过手机访问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开头?

相关推荐

    如何判断是手机还是电脑在访问网站?

    在现代互联网技术中,判断用户是通过手机还是电脑访问网站是一项常见的需求,特别是在响应式设计、移动优化和用户体验管理方面。本文将深入探讨几种常用的方法来实现这一功能,包括分析User-Agent字符串、检查...

    如何限制电脑PC端访问Web页面只能手机端才能访问

    在现代的互联网应用开发中,有时...综上所述,限制电脑访问Web页面只允许手机访问涉及到设备检测、服务器端和客户端实现、安全性和用户体验等多个层面。在实际应用中,应根据项目需求和实际情况灵活选择合适的方法。

    PHP实现判断访问端是手机还是电脑1

    本文将详细介绍如何使用PHP来判断访问网站的设备是手机还是电脑。这个功能通常在响应式设计或针对不同设备提供不同体验的网站中非常有用。我们将按照以下步骤进行: 一、开发环境 首先,我们需要一个PHP开发环境。...

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

    在互联网应用开发中,区分用户是使用手机还是电脑访问网站是一个重要的功能,它能够帮助开发者为不同类型的设备提供更加合适的页面布局和用户体验。随着移动互联网的发展,越来越多的用户通过手机访问互联网资源,...

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

    在现今的Web开发中,识别用户是通过手机还是电脑访问网站变得越来越重要。这种识别有助于为不同的用户设备提供更适合的页面布局和功能。PHP作为一门广泛用于服务器端编程的语言,提供了一种简单的方式来实现这种设备...

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

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

    辨别电脑手机跳转

    综上所述,“辨别电脑手机跳转”是通过检测用户访问设备类型,并据此进行页面重定向的技术方案。通过合理运用JavaScript语言特性,可以有效地实现这一功能,从而为用户提供更加个性化的浏览体验。

    PHP 实现判断用户是否手机访问

    在PHP中判断用户是否通过手机访问网站,是现代网站维护中常见的一项功能。随着智能手机和平板电脑等移动设备的普及,越来越多的用户倾向于使用移动设备来浏览网页。由于移动设备屏幕较小,分辨率和浏览器功能与传统...

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

    总结来说,这个`isMobile()`函数结合了多种方式,包括HTTP头信息和`HTTP_USER_AGENT`字段,以尽可能准确地判断访问者使用的设备类型。在实际应用中,可以根据具体需求调整或扩展这个函数,以提高判断的准确性和兼容...

    PHP 判断手机设备的代码

    通过分析这个字符串,我们可以辨别出用户是用手机、平板还是桌面电脑访问我们的网站。 以下是一个简单的PHP函数示例,用于检测用户设备: ```php function isMobileDevice() { return ( (isset($_SERVER['...

    【HTM5响应式系列之右侧多级滑动式】仿Slideby触屏版html5响应式手机wap网站模板下载

    HTML5响应式设计是一种现代网页开发技术,它允许网页在不同设备上自适应显示,无论是桌面电脑、平板电脑还是智能手机,都能提供优化的用户体验。在这个"【HTM5响应式系列之右侧多级滑动式】仿Slideby触屏版html5响应...

    PHP判断是手机端还是PC端 PHP判断是否是微信浏览器

    由于"MicroMessenger"是微信的标识字符串,如果该字符串存在,则可以较为确定地判断访问是通过微信内置浏览器发起的。 4. 在实际应用中,可以将判断手机端和微信内置浏览器的方法封装成函数,以便在代码中灵活使用...

    asp.net开发的wap站源码

    5. **移动设备检测**:源码可能包含设备检测逻辑,用于判断访问者使用的设备类型,并根据WAP2.0标准调整页面布局和内容。 6. **响应式设计**:为了适应不同屏幕尺寸和分辨率,源码可能采用了响应式设计,利用CSS3...

    仿晋优惠触屏版手机wap购物网站模板.zip

    此模板基于HTML5技术构建,具有自适应功能,能够根据用户设备的屏幕尺寸自动调整布局,无论是智能手机、平板电脑还是不同分辨率的设备,都能呈现出良好的视觉效果和流畅的操作体验。 一、HTML5技术详解: HTML5是超...

    thinkphp判断访客为手机端或PC端的方法

    在开发Web应用时,有时需要根据用户访问的设备类型提供不同的界面体验,比如手机用户可能需要更适合小屏幕的布局,而PC用户则可以享受更丰富的功能和大屏幕展示。ThinkPHP是一个流行的PHP框架,它提供了方便的方式来...

Global site tag (gtag.js) - Google Analytics