C#判断访问网站的设备类型

同样也是在破解版的HISHOP源码上扒出来的,代码如下:

protected void InitVisitorTerminal()
{
VisitorTerminal visitorTerminal = new VisitorTerminal();
string userAgent = base.Request.UserAgent;
if (string.IsNullOrWhiteSpace(userAgent))
{
userAgent = "";
}
userAgent = userAgent.ToLower();
bool flag = userAgent.Contains("ipad");
bool flag1 = userAgent.Contains("iphone os");
bool flag2 = userAgent.Contains("midp");
bool flag3 = userAgent.Contains("rv:1.2.3.4");
flag3 = (flag3 ? flag3 : userAgent.Contains("ucweb"));
bool flag4 = userAgent.Contains("android");
bool flag5 = userAgent.Contains("windows ce");
bool flag6 = userAgent.Contains("windows mobile");
bool flag7 = userAgent.Contains("micromessenger");
bool flag8 = userAgent.Contains("windows phone ");
bool flag9 = userAgent.Contains("appwebview(ios)");
visitorTerminal.Terminal = EnumVisitorTerminal.PC;
if ((flag || flag1 || flag2 || flag3 || flag4 || flag5 || flag6 ? true : flag8))
{
visitorTerminal.Terminal = EnumVisitorTerminal.Moblie;
}
if ((flag ? true : flag1))
{
visitorTerminal.OperaSystem = EnumVisitorOperaSystem.IOS;
visitorTerminal.Terminal = EnumVisitorTerminal.Moblie;
if (flag)
{
visitorTerminal.Terminal = EnumVisitorTerminal.PAD;
}
if (flag9)
{
visitorTerminal.Terminal = EnumVisitorTerminal.IOS;
}
}
if (flag4)
{
visitorTerminal.OperaSystem = EnumVisitorOperaSystem.Android;
visitorTerminal.Terminal = EnumVisitorTerminal.Moblie;
}
if (flag7)
{
visitorTerminal.Terminal = EnumVisitorTerminal.WeiXin;
}
if ((visitorTerminal.Terminal == EnumVisitorTerminal.Moblie || visitorTerminal.Terminal == EnumVisitorTerminal.PAD || visitorTerminal.Terminal == EnumVisitorTerminal.WeiXin ? true : visitorTerminal.Terminal == EnumVisitorTerminal.IOS))
{
this.IsMobileTerminal = true;
}
this.visitorTerminalInfo = visitorTerminal;

    }

有些类型是他自己里面定义好的枚举。。知道那个意思就行了。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 9,274评论 0 6
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,852评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,799评论 19 139
  • Correctness AdapterViewChildren Summary: AdapterViews can...
    MarcusMa阅读 12,871评论 0 6
  • 我早该知道~♚~ 为何“得不到的永远在骚动,被偏爱的都有恃无恐?” 恋爱中优势者和劣势者的心理游戏 谁伤了你,你又...
    冷氏弑青木宁阅读 3,196评论 0 1