.net访问网站的是手机还是PC

来源:互联网 发布:php 模板引擎 编辑:程序博客网 时间:2024/05/17 23:18

我主要看了这里http://topic.csdn.net/u/20100907/16/D01D667A-41AA-4A61-B985-8EB612E061AC.html

单位有个需求,要根据访问网站的(手机或电脑)设备的不同,显示不同的网页。

       在网上找了一下,我的总结是最好用HTML DOM 的userAgent 属性来判断访问网站的设备是什么。

1.HTML页代码:

        <divid="userAgent">
        </div>
        <scripttype="text/javascript">
           document.getElementById("userAgent").innerHTML = navigator.userAgent;
           //MessageBox.Show(this.webBrowser1.Document.GetElementById("userAgent").InnerHtml);
        </script>

这样,就可以得到userAgent 的返回值了。

2.更好的了解userAgent :

下面是4个程序的例子

(1)检测访问者的浏览器和版本号

<html>

<body>

<script type="text/javascript">

var browser=navigator.appName
var b_version=navigator.appVersion
var version=parseFloat(b_version)
document.write("浏览器名称:"+browser)
document.write("<br />")
document.write("浏览器版本:"+ version)

</script>

</body>
</html>

(2)有关访问者的浏览器的更多信息

<html>
<body>

<script type="text/javascript">
document.write("<p>浏览器:")
document.write(navigator.appName + "</p>")

document.write("<p>浏览器版本:")
document.write(navigator.appVersion + "</p>")

document.write("<p>代码:")
document.write(navigator.appCodeName + "</p>")

document.write("<p>平台:")
document.write(navigator.platform + "</p>")

document.write("<p>Cookies 启用:")
document.write(navigator.cookieEnabled + "</p>")

document.write("<p>浏览器的用户代理报头:")
document.write(navigator.userAgent + "</p>")
</script>

</body>
</html>

 

(3)有关访问者的浏览器的全部细节

<html>
<body>

<script type="text/javascript">
var x = navigator;
document.write("CodeName=" + x.appCodeName);
document.write("<br />");
document.write("MinorVersion=" + x.appMinorVersion);
document.write("<br />");
document.write("Name=" + x.appName);
document.write("<br />");
document.write("Version=" + x.appVersion);
document.write("<br />");
document.write("CookieEnabled=" + x.cookieEnabled);
document.write("<br />");
document.write("CPUClass=" + x.cpuClass);
document.write("<br />");
document.write("OnLine=" + x.onLine);
document.write("<br />");
document.write("Platform=" + x.platform);
document.write("<br />");
document.write("UA=" + x.userAgent);
document.write("<br />");
document.write("BrowserLanguage=" + x.browserLanguage);
document.write("<br />");
document.write("SystemLanguage=" + x.systemLanguage);
document.write("<br />");
document.write("UserLanguage=" + x.userLanguage);
</script>


</body>
</html>

 

(4)根据浏览器来提醒用户

<html>
<head>

<script type="text/javascript">
function detectBrowser()
{
var browser=navigator.appName
var b_version=navigator.appVersion
var version=parseFloat(b_version)
if ((browser=="Netscape"||browser=="Microsoft InternetExplorer") && (version>=4))
  {alert("您的浏览器已经很棒了!")}
else
  {alert("您的浏览器需要升级了!")}
}
</script>

</head>

<body onload="detectBrowser()">
</body>

</html>

3.五种未经实际测试的解决方法(仅供参考)

(1)protected void Page_Load(objectsender, EventArgs e)

    {

       HttpCapabilitiesBase r =(System.Web.Configuration.HttpCapabilitiesBase)Request.Browser;

       string agent = (Request.UserAgent + "").ToLower().Trim();

    

       if (r.Browser == "Mozilla")

           Response.Write("可以识别:Mozilla");

       else

           Response.Write("不识别:Mozilla");

       if (r.IsMobileDevice || r.Browser == "Unknown" || r.Browser == "Mozilla")

       {

           Response.Write("手机" + "\r\n" + r.Browser + "\r\n" + r.Type);

        }

       else

       {

           Response.Write("电脑" + "\r\n" + r.Browser + "\r\n" + r.Type);

       }

    }

(2) protected void Page_Load(object sender, EventArgs e)
        {
            if (HttpContext.Current.Request.Headers["user-agent"] != null && HttpContext.Current.Request.Headers["user-agent"].ToLower().ToString().IndexOf("mozilla") != -1)
            {
                 //PC
            }
            else
            {
               //手机
            }
        }

(3)

publicstaticbool GetClientWeb()
{

bool result=false;
 string clientType=string.Concat(HttpContext.Current.Request.UserAgent);
if (clientType.ToLower().Contains("mozilla")|| clientType.ToLower().Contains("opera"))
{
      result =true;
 }
 return result;
}

(4)

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);

(5)

HttpCapabilitiesBase r = (System.Web.Configuration.HttpCapabilitiesBase)Request.Browser;
            string browser = r.Browser.ToString().Trim().ToLower();
            if (browser.Contains("firefox") || browser.Contains("ie"))
            {
                // Response.Write("电脑" + "——浏览器是——" + browser);--什么都不做,继续进行
                
            }
            else
            {
                // Response.Write("手机" + "——浏览器是——" + browser);
                //跳到手机页
                Response.Redirect("http://www.jsdeai.com/index.html");
            }