/**
* 获取外网IP
*
* @param request
* @return
*/
public static String getRemoteHost(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ip;
}
/**
*
* 获取浏览器类型
* @param request
* @return
*/
public static String getRequestBrowserInfo(HttpServletRequest request){
String browserType = null;
String header = request.getHeader("user-agent");
if(header == null || header.equals("")){
return "";
}
if(header.indexOf("MSIE")>0){
browserType = "IE";
}else if(header.indexOf("Firefox")>0){
browserType = "Firefox";
}else if(header.indexOf("Chrome")>0){
browserType = "Chrome";
}else if(header.indexOf("Safari")>0){
browserType = "Safari";
}else if(header.indexOf("Camino")>0){
browserType = "Camino";
}else if(header.indexOf("Konqueror")>0){
browserType = "Konqueror";
}
return browserType;
}
/**
*
* 获取用户mac地址
* @param ip
* @return
*/
public static String getMacAddrByIp(String ip) {
String macAddr = null;
try {
Process process = Runtime.getRuntime().exec("nbtstat -a " + ip);
BufferedReader br = new BufferedReader(
new InputStreamReader(process.getInputStream()));
Pattern pattern = Pattern.compile("([A-F0-9]{2}-){5}[A-F0-9]{2}");
Matcher matcher;
for (String strLine = br.readLine(); strLine != null;
strLine = br.readLine()) {
matcher = pattern.matcher(strLine);
if (matcher.find()) {
macAddr = matcher.group();
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return macAddr;
}
/**
* 数组型字符串转数组如 ["1,2","3"]
*/
public static String[] strToArray(String str) {
List arrayList = new ArrayList();
String strNew = str.replace("[\"", "").replace("\"]", "").replace("\\/", "/");
String[] strs = strNew.split("\",\"");
return strs;
}
网友评论