送50分 用Asp.net判断输出终端是浏览器还是手机

时间:2022-10-05 00:50:24
各位大大们:
    现在我们用asp.net做了个手机网站,现在都是强制输出wml格式可以在手机上浏览,但电脑上就不可以浏览了。
能有什么办法既能在电脑浏览器浏览 也能在手机浏览????现在经理催的很急,希望做过的人给个方法或建议。在此谢过。不会的也帮顶顶。谢谢

30 个解决方案

#1


应该能实现吧.
程序获取手机特有的信息,如果有说明是手机..

#2


判断操作系统啊,带windows的就是电脑了

#3


 读取浏览器消息应该也能知道是电脑还是手机吧。。 - -

#4


 还有没有做过这方面的??up

#5


引用 2 楼 chenhaoying 的回复:
判断操作系统啊,带windows的就是电脑了

送50分 用Asp.net判断输出终端是浏览器还是手机

#6


大家说的太笼统了 能否说的详细点 或是给点代码

#7


好象用浏览器版本是不行的!
因为以前碰见过用浏览器版本等不能区分计算机还是手机的!
不行了换着做成桌面应用就可以区分的!

#8


request.broswer上面的属性等我想是可以判断的吧,楼主自己试试。

#9


不知道在手机下可以不可以

 public string getop(string[] x)
    {
        string str = "未知";
        string str3 = x[2].ToLower();
        if (str3 == null)
        {
            return str;
        }
        str3 = string.IsInterned(str3);
        if (str3 == " windows 9x")
        {
            return "Windows 9x/me";
        }
        if (str3 == " windows nt 5.0")
        {
            return "Windows 2000";
        }
        if (str3 == " windows nt 5.1")
        {
            return "Windows XP";
        }
        if (str3 == " windows nt 5.2")
        {
            return "Windows 2003";
        }
        if (str3 == " offline")
        {
            return "offline";
        }
        if (str3 == "flashget")
        {
            return "flashget";
        }
        if (str3 == "webzip")
        {
            return "webzip";
        }
        if (str3 == "Tel")
        {
            return "Telport";
        }
        if (str3 != " cac")
        {
            return str;
        }
        return "Mac";
    }
 System.Collections.Specialized.NameValueCollection ServerVariables = System.Web.HttpContext.Current.Request.ServerVariables;
        string useragent = ServerVariables["HTTP_USER_AGENT"].ToString();
        string[] ob = useragent.Split(';');
        Response.Write(getop(ob));

#10


mk

#11


Request.UserAgent判断其中的内容。
一般来说,里面会包含Windows版本,浏览器版本,.NET Framework版本,一些插件名称等。
手机访问的话,通常会包含手机型号。

楼上有人说判断有没有Windows是不行的,不说WM手机带Windows,带IE,那linux系统也不带windows

#12


在电脑上装一个虚拟手机

#13


mark

#14


通常方式下,判断UserAgent就可以了,标准的浏览器都会在UserAgent里面写入一些跟自己产品相关的信息。

但是,这个UserAgent是可以模拟的,客户端完全可以控制我要发送怎样的UserAgent,所以根据UserAgent判断也只是适用于大部分情况而已。

#15


顶楼上几位,就是UserAgent

#16


引用 11 楼 wjq 的回复:
Request.UserAgent判断其中的内容。
一般来说,里面会包含Windows版本,浏览器版本,.NET Framework版本,一些插件名称等。
手机访问的话,通常会包含手机型号。

楼上有人说判断有没有Windows是不行的,不说WM手机带Windows,带IE,那linux系统也不带windows
现在用浏览器输出Request.UserAgent是
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA)

我现在是在webconfig里配置了<browserCaps>节点
如何在程序里通过Request.UserAgent内容的不同配置webconfig的节点 或者是别的办法  谢谢了

#17


关注 帮顶

#18


guanzhu

#19


搞个选择项,让他自己选择吧。

#20


建议判断OS来判断下,不过偶记也不准确的

#21


mark!!

#22


没尝试过,不过请求一个页面时HTTP头不是带浏览器信息的吗?

#23


完全可以,我弄过一个,还可以判断是否是PSP

#24


引用 23 楼 ahwwmb 的回复:
完全可以,我弄过一个,还可以判断是否是PSP
说说怎么弄得???谢谢

#25


    public static bool 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;
    }

#26


#27


呵呵. 仔细分析手机与电脑发送过去的HTTP头信息对比下吧. 一两个数据还不够, 最好各个地区的移动联通电信用户都收集一些

#28


UserAgent

#29


public static bool 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;
    }


正解。

#30


谢谢各位了问题解决了
答案在11,14,15,25,29楼
也谢谢参与的朋友

#1


应该能实现吧.
程序获取手机特有的信息,如果有说明是手机..

#2


判断操作系统啊,带windows的就是电脑了

#3


 读取浏览器消息应该也能知道是电脑还是手机吧。。 - -

#4


 还有没有做过这方面的??up

#5


引用 2 楼 chenhaoying 的回复:
判断操作系统啊,带windows的就是电脑了

送50分 用Asp.net判断输出终端是浏览器还是手机

#6


大家说的太笼统了 能否说的详细点 或是给点代码

#7


好象用浏览器版本是不行的!
因为以前碰见过用浏览器版本等不能区分计算机还是手机的!
不行了换着做成桌面应用就可以区分的!

#8


request.broswer上面的属性等我想是可以判断的吧,楼主自己试试。

#9


不知道在手机下可以不可以

 public string getop(string[] x)
    {
        string str = "未知";
        string str3 = x[2].ToLower();
        if (str3 == null)
        {
            return str;
        }
        str3 = string.IsInterned(str3);
        if (str3 == " windows 9x")
        {
            return "Windows 9x/me";
        }
        if (str3 == " windows nt 5.0")
        {
            return "Windows 2000";
        }
        if (str3 == " windows nt 5.1")
        {
            return "Windows XP";
        }
        if (str3 == " windows nt 5.2")
        {
            return "Windows 2003";
        }
        if (str3 == " offline")
        {
            return "offline";
        }
        if (str3 == "flashget")
        {
            return "flashget";
        }
        if (str3 == "webzip")
        {
            return "webzip";
        }
        if (str3 == "Tel")
        {
            return "Telport";
        }
        if (str3 != " cac")
        {
            return str;
        }
        return "Mac";
    }
 System.Collections.Specialized.NameValueCollection ServerVariables = System.Web.HttpContext.Current.Request.ServerVariables;
        string useragent = ServerVariables["HTTP_USER_AGENT"].ToString();
        string[] ob = useragent.Split(';');
        Response.Write(getop(ob));

#10


mk

#11


Request.UserAgent判断其中的内容。
一般来说,里面会包含Windows版本,浏览器版本,.NET Framework版本,一些插件名称等。
手机访问的话,通常会包含手机型号。

楼上有人说判断有没有Windows是不行的,不说WM手机带Windows,带IE,那linux系统也不带windows

#12


在电脑上装一个虚拟手机

#13


mark

#14


通常方式下,判断UserAgent就可以了,标准的浏览器都会在UserAgent里面写入一些跟自己产品相关的信息。

但是,这个UserAgent是可以模拟的,客户端完全可以控制我要发送怎样的UserAgent,所以根据UserAgent判断也只是适用于大部分情况而已。

#15


顶楼上几位,就是UserAgent

#16


引用 11 楼 wjq 的回复:
Request.UserAgent判断其中的内容。
一般来说,里面会包含Windows版本,浏览器版本,.NET Framework版本,一些插件名称等。
手机访问的话,通常会包含手机型号。

楼上有人说判断有没有Windows是不行的,不说WM手机带Windows,带IE,那linux系统也不带windows
现在用浏览器输出Request.UserAgent是
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA)

我现在是在webconfig里配置了<browserCaps>节点
如何在程序里通过Request.UserAgent内容的不同配置webconfig的节点 或者是别的办法  谢谢了

#17


关注 帮顶

#18


guanzhu

#19


搞个选择项,让他自己选择吧。

#20


建议判断OS来判断下,不过偶记也不准确的

#21


mark!!

#22


没尝试过,不过请求一个页面时HTTP头不是带浏览器信息的吗?

#23


完全可以,我弄过一个,还可以判断是否是PSP

#24


引用 23 楼 ahwwmb 的回复:
完全可以,我弄过一个,还可以判断是否是PSP
说说怎么弄得???谢谢

#25


    public static bool 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;
    }

#26


#27


呵呵. 仔细分析手机与电脑发送过去的HTTP头信息对比下吧. 一两个数据还不够, 最好各个地区的移动联通电信用户都收集一些

#28


UserAgent

#29


public static bool 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;
    }


正解。

#30


谢谢各位了问题解决了
答案在11,14,15,25,29楼
也谢谢参与的朋友