您的位置:首页 > 编程语言 > Java开发

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: