zoukankan      html  css  js  c++  java
  • java web 获取客户端操作系统信息

    package com.java.basic.pattern;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * 获取客户端操作系统信息
     * 从http的header中获取到user-agent,然后利用正则表达式判断是哪一种操作系统
     * 
     * 暂只匹配Win 7、WinXP、Win2003、Win2000、MAC、WinNT、Linux、Mac68k、Win9x
     * 
     * @param userAgent request.getHeader("user-agent")的返回值
     * 
     * @author 
     *
     */
    public class ClientOS {
        
        private static final String USER_AGENT = "";
        
        public static void main(String[] args) {
            String clientOS = getClientOS(USER_AGENT);
            
        }
        
        public static String getClientOS(String userAgent){
            String cos = "unknow os";
            
            Pattern p = Pattern.compile(".*(Windows NT 6\.1).*");
            Matcher m = p.matcher(userAgent);
            if(m.find()){
                cos = "Windows7";
                return cos;
            }
            
            p = Pattern.compile(".*(Windows NT 5\.1|Windows XP).*");
            m = p.matcher(userAgent);
            if(m.find()){
                cos = "WinXP";
                return cos;
            }
            
            p = Pattern.compile(".*(Windows NT 5\.2).*");
            m = p.matcher(userAgent);
            if(m.find()){
                cos = "Win2003";
                return cos;
            }
            
            p = Pattern.compile(".*(Win2000|Windows 2000|Windows NT 5\.0).*");
            m = p.matcher(userAgent);
            if(m.find()){
                cos = "Win2000";
                return cos;
            }
            
            p = Pattern.compile(".*(Mac|apple|MacOS8).*");
            m = p.matcher(userAgent);
            if(m.find()){
                cos = "MAC";
                return cos;
            }
            
            p = Pattern.compile(".*(WinNT|WindowsNT).*");
            m = p.matcher(userAgent);
            if(m.find()){
                cos = "WinNT";
                return cos;
            }
            
            p = Pattern.compile(".*Linux.*");
            if(m.find()){
                cos = "Linux";
                return cos;
            }
            
            p = Pattern.compile(".*68k|68000.*");
            m = p.matcher(userAgent);
            if(m.find()){
                cos = "Mac68k";
                return cos;
            }
            
            p = Pattern.compile(".*(9x 4.90|Win9(5|8)|Windows 9(5|8)|95/NT|Win32|32bit).*");
            m = p.matcher(userAgent);
            if(m.find()){
                cos = "Win9x";
                return cos;
            }
            
            return cos;
        }
        
        
        
    }
    View Code
  • 相关阅读:
    PHP之十六个魔术方法详解
    PHP之十六个魔术方法详解
    让Docker容器使用静态独立的外部IP(便于集群组建)
    桥接和nat模式区别
    使用 GitHub / GitLab 的 Webhooks 进行网站自动化部署
    docker gitlab
    docker gitlab安装
    docker ui管理工具
    docker 批量删除容器
    Scrapy设置代理
  • 原文地址:https://www.cnblogs.com/zhilu-doc/p/5333327.html
Copyright © 2011-2022 走看看