package com.ld.igds.util;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.net.InetAddress;
|
import java.net.UnknownHostException;
|
|
/**
|
* @Desc: 获取客户登陆信息
|
* @author: andy.jia
|
* @update-time: 2022/11/10 19:55
|
*/
|
public class SystemUtil {
|
|
/***
|
* 获取客户端IP地址
|
* @param request
|
*/
|
public static String getIP(HttpServletRequest request) {
|
if (request == null) {
|
return "127.0.0.1";
|
}
|
String ip = request.getHeader("X-Real-IP");
|
if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
|
return ip;
|
}
|
ip = request.getHeader("X-Forwarded-For");
|
if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
|
// 多次反向代理后会有多个IP值,第一个为真实IP。
|
int index = ip.indexOf(',');
|
if (index != -1) {
|
return ip.substring(0, index);
|
} else {
|
return ip;
|
}
|
} else {
|
return request.getRemoteAddr();
|
}
|
}
|
|
|
/**
|
* 获取来访者的浏览器版本
|
*
|
* @param request
|
* @return
|
*/
|
public static String getBrowserInfo(HttpServletRequest request) {
|
String browserVersion = null;
|
String header = request.getHeader("user-agent");
|
if (header == null || header.equals("")) {
|
return "";
|
}
|
if (header.indexOf("MSIE 6.0") > 0) {
|
browserVersion = "IE 6";
|
} else if (header.indexOf("MSIE 7.0") > 0) {
|
browserVersion = "IE 7";
|
} else if (header.indexOf("MSIE 8.0") > 0) {
|
browserVersion = "IE 8";
|
} else if (header.indexOf("MSIE 9.0") > 0) {
|
browserVersion = "IE 9";
|
} else if (header.indexOf("MSIE 10.0") > 0) {
|
browserVersion = "IE 10";
|
} else if (header.indexOf("rv:11.0") > 0) {
|
browserVersion = "IE 11";
|
} else if (header.indexOf("Firefox") > 0) {
|
browserVersion = "Firefox";
|
} else if (header.indexOf("Chrome") > 0) {
|
browserVersion = "Chrome";
|
} else if (header.indexOf("Safari") > 0) {
|
browserVersion = "Safari";
|
} else if (header.indexOf("Camino") > 0) {
|
browserVersion = "Camino";
|
} else if (header.indexOf("Konqueror") > 0) {
|
browserVersion = "Konqueror";
|
}
|
return browserVersion;
|
}
|
|
|
/**
|
* 获取系统版本信息
|
*
|
* @param request
|
* @return
|
*/
|
public static String getSystemInfo(HttpServletRequest request) {
|
String systenInfo = null;
|
String header = request.getHeader("user-agent");
|
if (header == null || header.equals("")) {
|
return "";
|
}
|
// 得到用户的操作系统
|
if (header.indexOf("NT 6.0") > 0) {
|
systenInfo = "Windows Vista/Server 2008";
|
} else if (header.indexOf("NT 5.2") > 0) {
|
systenInfo = "Windows Server 2003";
|
} else if (header.indexOf("NT 5.1") > 0) {
|
systenInfo = "Windows XP";
|
} else if (header.indexOf("NT 6.0") > 0) {
|
systenInfo = "Windows Vista";
|
} else if (header.indexOf("NT 6.1") > 0) {
|
systenInfo = "Windows 7";
|
} else if (header.indexOf("NT 6.2") > 0) {
|
systenInfo = "Windows Slate";
|
} else if (header.indexOf("NT 6.3") > 0) {
|
systenInfo = "Windows 9";
|
} else if (header.indexOf("NT 10.0") > 0) {
|
systenInfo = "Windows 10";
|
} else if (header.indexOf("NT 5") > 0) {
|
systenInfo = "Windows 2000";
|
} else if (header.indexOf("NT 4") > 0) {
|
systenInfo = "Windows NT4";
|
} else if (header.indexOf("Me") > 0) {
|
systenInfo = "Windows Me";
|
} else if (header.indexOf("Mac") > 0) {
|
systenInfo = "Mac";
|
} else if (header.indexOf("Unix") > 0) {
|
systenInfo = "UNIX";
|
} else if (header.indexOf("Linux") > 0) {
|
systenInfo = "Linux";
|
} else if (header.indexOf("SunOS") > 0) {
|
systenInfo = "SunOS";
|
}
|
return systenInfo;
|
}
|
|
|
/**
|
* 获取来访者的主机名称
|
*
|
* @param ip
|
* @return
|
*/
|
public static String getHostName(String ip) {
|
InetAddress inet;
|
try {
|
inet = InetAddress.getByName(ip);
|
return inet.getHostName();
|
} catch (UnknownHostException e) {
|
e.printStackTrace();
|
}
|
return "未知";
|
}
|
|
|
}
|