如何区分是手机访问网站,还是PC访问网站?

 ASP判断ip是否手机访问网站

=====================================

程序代码


<%
if InStr(LCase(Request.ServerVariables("HTTP_ACCEPT")),"text/vnd.wap.wml")>0 then
response.redirect  "wap.asp" '如果是手机访问则跳转到wap.asp
response.end
else
response.redirect  "default.asp" '如果电脑访问跳转到首页
response.end
end if
%>



我自己是在default.asp
添加


<%
if InStr(LCase(Request.ServerVariables("HTTP_ACCEPT")),"text/vnd.wap.wml")>0 then
response.redirect  "wap.asp"
response.end
end if
%>


这样只要输入www.51weidi.com就可以自动判断是否是手机访问。而跳转到对应页面了。。
==================================

PHP判断用户是否用手机访问网站

老九是一个忠实的手机党,经常用手机上网,也用手机访问过我的博客,不过我的博客没有开发过wap版的,大概老九的手机浏览器比较先进吧,我用我的手机访问时总是提示页面太大(三年前买的手机,估计过时了吧)。

  我一直在想,PHP应该能判断用户是否用手机访问网站吧,记得早些年,在QQ空间的留言板上还出现了该留言来自于手机的提示呢,虽然QQ空间不是用PHP开发的。于是,今天来网络上搜索了一番。找到了一个貌似还可以的方法。参考地址: php如何判断用户通过手机wap访问还是电脑直接访问

  手机需通过代理服务器来访问网站,http头信息里一般会包含一个VIA的信息,不太懂具体是什么含义,大概都是通信用的。于是我建了一个脚本测试下,<?php echo $_SERVER['HTTP_VIA'] ?>,用火狐,IE打开什么也没有。上传到网上,用我的手机访问了一下,有如下信息:HTTP/1.1 ZJHZ-PS-WAP3-GW305(infox-WISG, Huawei Technologies)。那就按照参考文章的说法,如果获取到了HTTP头信息中的VIA并且含WAP,说明是手机访问。当然对那些头信息里没有发送VIA的手机就无效了

  这样就写了一个函数来封装一下,以方便使用。代码如下:

/*
 * 功能:               判断是否是手机访问
 * 参数:               无
 * 返回值:             返回1为是手机访问,返回0时为不是
 */
function is_wap() {
    $http_via = isset($_SERVER['HTTP_VIA']) ? strtolower($_SERVER['HTTP_VIA']) : '';
    return !empty($http_via) && strstr($http_via, 'wap') ? 1 : 0;      
}

  题外话:近几日,夜里睡觉时一直对着电扇吹,一天早上起来觉得上肢肌肉酸痛,感觉手足心发热,打了三次点滴,吃了五种药体温才恢复正常,又一次理解了身体可是革命的根本呀。在此,也提醒各位童鞋要多多注意身体了。

===================

JS如何判断来访问网站的用户是手机用户还是Web浏览器的用户

使用JS架框有现成的判断 
例如motools架框中:
Browser.Platform.mac - (boolean) 当前操作系统是否为Mac
Browser.Platform.win - (boolean) 当前操作系统是否为Windows
Browser.Platform.linux - (boolean) 当前操作系统是否为Linux
Browser.Platform.ipod - (boolean) 当前操作系统是否为iPod Touch / iPhone
Browser.Platform.other - (boolean) 当前操作系统即不是Mac, 也不是Windows或Linux
Browser.Platform.name - (string) 当前操作系统的名称
 
 
  
  
这个只能通过客户端传递的User-agent来判断
比如正常pc是:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1;)

常用手机的UserAgent你可以去网上找找,或者自己连手机测试,
比如Nokia5320的是:Nokia 5320/UCWEB7.0.1.34/28/999
HTC的安卓手机:Mozilla/5.0 (Linux; U; Android 2.2; zh-cn; HTC Desire Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1;

iPhone的:Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; zh-cn) AppleWebKit/528.18 (KHTML, like Gecko) Mobile/7D11
 
 
asp.net 或JSP 判断是手机还是电脑访问网站的可靠方法 
    
    

做了WAP网站,用到判断用户来自PC还是手机,想了很多方法,如判断IP,判断分辨率等,但经过试验,都不太可靠,最终采用了通过获得http头信息的方法来判断,此方法可靠性最高.详细代码如下:

asp.net [code]

if (Request.Headers["user-agent"] != null && Request.Headers["user-agent"].ToLower().ToString().IndexOf("mozilla") != -1)             Response.Redirect("www/index.aspx");         else             Response.Redirect("wap/index.aspx");

JSP [code]

if(request.getheader("user-agent")!=null&&(request.getheader("user-agent").tolowercase().indexof("mozilla")!=-1)) { strfinishurl = "/web/index.jsp"; }else { strfinishurl = "/wap/index.jsp"; }

 

 

asp.net(C#) 中用以下代码

using System.Text.RegularExpressions;//头部引入正则的命名空间

//为了加强准确性,防止支持wap的浏览器如opera,加入操作系统验证。openwave|后为pc操作系统

string osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|X Window|Longhorn|ubuntu|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN";

string uAgent = Request.ServerVariables["HTTP_USER_AGENT"];

Regex reg = new Regex(osPat);

if (reg.IsMatch(uAgent))

{

Response.Write("电脑访问");

}

else

{

Response.Write("手机访问");

}

Response.Write("<br/>" + uAgent);


_________________________________________________________________________________

PHP中用以下代码:

$uAgent = $_SERVER['HTTP_USER_AGENT'];

$osPat  = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|X Window|ubuntu|Longhorn|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS\/2|OSF1|SUN";

if(preg_match("/($osPat)/i",  $uAgent )) //winwap 模拟WAP手机上网的一个浏览器; openwave|后面为各pc操作系统

{

echo "电脑访问";

}

else

{

echo "手机访问";

}

echo '<br/>'.$uAgent;


_________________________________________________________________________________

javascript中采用navigator.userAgent 来获取,但非智能机似乎不支持js。

 

 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值