java 通过userAgent获取访问者的操作系统与浏览器
2015-10-28 23:01
639 查看
StringBuilder userAgent = new StringBuilder("[");
userAgent.append(request.getHeader("User-Agent"));
userAgent.append("]");
int indexOfMac = userAgent.indexOf("Mac OS X");
int indexOfWindows = userAgent.indexOf("Windows NT");
int indexOfIE = userAgent.indexOf("MSIE");
int indexOfIE11 = userAgent.indexOf("rv:");
int indexOfFF = userAgent.indexOf("Firefox");
int indexOfSogou = userAgent.indexOf("MetaSr");
int indexOfChrome = userAgent.indexOf("Chrome");
int indexOfSafari = userAgent.indexOf("Safari");
boolean isMac = indexOfMac > 0;
boolean isWindows = indexOfWindows > 0;
boolean isLinux = userAgent.indexOf("Linux") > 0;
boolean containIE = indexOfIE > 0 || (isWindows && (indexOfIE11 > 0));
boolean containFF = indexOfFF > 0;
boolean containSogou = indexOfSogou > 0;
boolean containChrome = indexOfChrome > 0;
boolean containSafari = indexOfSafari > 0;
String browser = "";
if (containSogou) {
if (containIE) {
browser = "搜狗" + userAgent.substring(indexOfIE, indexOfIE + "MSIE x.x".length());
} else if (containChrome) {
browser = "搜狗" + userAgent.substring(indexOfChrome, indexOfChrome + "Chrome/xx".length());
}
} else if (containChrome) {
browser = userAgent.substring(indexOfChrome, indexOfChrome + "Chrome/xx".length());
} else if (containSafari) {
int indexOfSafariVersion = userAgent.indexOf("Version");
browser = "Safari "
+ userAgent.substring(indexOfSafariVersion, indexOfSafariVersion + "Version/x.x.x".length());
} else if (containFF) {
browser = userAgent.substring(indexOfFF, indexOfFF + "Firefox/xx".length());
} else if (containIE) {
if (indexOfIE11 > 0) {
browser = "MSIE 11";
} else {
browser = userAgent.substring(indexOfIE, indexOfIE + "MSIE x.x".length());
}
}
String os = "";
if (isMac) {
os = userAgent.substring(indexOfMac, indexOfMac + "MacOS X xxxx".length());
} else if (isLinux) {
os = "Linux";
} else if (isWindows) {
os = "Windows ";
String version = userAgent.substring(indexOfWindows + "Windows NT".length(), indexOfWindows
+ "Windows NTx.x".length());
if ("5.0".equals(version.trim())) {
os += "2000";
} else if ("5.1".equals(version.trim())) {
os += "XP";
} else if ("5.2".equals(version.trim())) {
os += "2003";
} else if ("6.0".equals(version.trim())) {
os += "Vista";
} else if ("6.1".equals(version.trim())) {
os += "7";
} else if ("6.2".equals(version.trim())) {
os += "8";
} else if ("6.3".equals(version.trim())) {
os += "8.1";
}
}
System.out.println("系统:" + os + ",浏览器:" + browser);
userAgent.append(request.getHeader("User-Agent"));
userAgent.append("]");
int indexOfMac = userAgent.indexOf("Mac OS X");
int indexOfWindows = userAgent.indexOf("Windows NT");
int indexOfIE = userAgent.indexOf("MSIE");
int indexOfIE11 = userAgent.indexOf("rv:");
int indexOfFF = userAgent.indexOf("Firefox");
int indexOfSogou = userAgent.indexOf("MetaSr");
int indexOfChrome = userAgent.indexOf("Chrome");
int indexOfSafari = userAgent.indexOf("Safari");
boolean isMac = indexOfMac > 0;
boolean isWindows = indexOfWindows > 0;
boolean isLinux = userAgent.indexOf("Linux") > 0;
boolean containIE = indexOfIE > 0 || (isWindows && (indexOfIE11 > 0));
boolean containFF = indexOfFF > 0;
boolean containSogou = indexOfSogou > 0;
boolean containChrome = indexOfChrome > 0;
boolean containSafari = indexOfSafari > 0;
String browser = "";
if (containSogou) {
if (containIE) {
browser = "搜狗" + userAgent.substring(indexOfIE, indexOfIE + "MSIE x.x".length());
} else if (containChrome) {
browser = "搜狗" + userAgent.substring(indexOfChrome, indexOfChrome + "Chrome/xx".length());
}
} else if (containChrome) {
browser = userAgent.substring(indexOfChrome, indexOfChrome + "Chrome/xx".length());
} else if (containSafari) {
int indexOfSafariVersion = userAgent.indexOf("Version");
browser = "Safari "
+ userAgent.substring(indexOfSafariVersion, indexOfSafariVersion + "Version/x.x.x".length());
} else if (containFF) {
browser = userAgent.substring(indexOfFF, indexOfFF + "Firefox/xx".length());
} else if (containIE) {
if (indexOfIE11 > 0) {
browser = "MSIE 11";
} else {
browser = userAgent.substring(indexOfIE, indexOfIE + "MSIE x.x".length());
}
}
String os = "";
if (isMac) {
os = userAgent.substring(indexOfMac, indexOfMac + "MacOS X xxxx".length());
} else if (isLinux) {
os = "Linux";
} else if (isWindows) {
os = "Windows ";
String version = userAgent.substring(indexOfWindows + "Windows NT".length(), indexOfWindows
+ "Windows NTx.x".length());
if ("5.0".equals(version.trim())) {
os += "2000";
} else if ("5.1".equals(version.trim())) {
os += "XP";
} else if ("5.2".equals(version.trim())) {
os += "2003";
} else if ("6.0".equals(version.trim())) {
os += "Vista";
} else if ("6.1".equals(version.trim())) {
os += "7";
} else if ("6.2".equals(version.trim())) {
os += "8";
} else if ("6.3".equals(version.trim())) {
os += "8.1";
}
}
System.out.println("系统:" + os + ",浏览器:" + browser);
相关文章推荐
- Java中增强型for循环的样例和解释
- JAVA双列集合HashMap
- Java:集合类的区别详解
- 使用sts构建Maven Spring webmvc项目
- java中常见的几种Runtimeexception
- java大数加法
- java 组合模式 详解
- spring开发工具STS下载
- Spring Security 入门详解(转)
- javax.Swing
- 【NOJ】(java)求最值
- spring学习笔记--quartz和定时任务执行
- 疯狂JAVA讲义--画圆
- java.lang.reflect操作对象属性(域)的值
- 【JAVA核心技术卷一】Inner Class内部类&Proxy代理
- SpringMVC 过滤器Filter使用解析
- Eclipse汉化
- Spring中的字符编码过滤器
- 自己写一个java.lang.reflect.Proxy代理的实现
- Java基础(10):泛型