浏览器和ip获取功能(参考)

master
gxy 8 months ago
parent 0315abc925
commit a05fc08a02

@ -0,0 +1,83 @@
package com.example.api.utils;
import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest接口用于获取HTTP请求信息
/**
*
*/
public class BrowserUtil {
/**
*
* @param request HTTPUser-Agent
* @return
*/
public static String getBrower(HttpServletRequest request) {
String browserVersion = null; // 用于存储浏览器版本信息
String header = request.getHeader("User-Agent"); // 从请求头中获取User-Agent信息
if (header.equals("") || header == null) { // 如果User-Agent信息为空或null默认为谷歌浏览器
browserVersion = "谷歌浏览器";
return browserVersion;
}
// 根据User-Agent信息判断浏览器类型
if (header.indexOf("Chrome") > 0) { // 谷歌浏览器
browserVersion = "Chrome";
} else if (header.indexOf("Safari") > 0) { // Safari浏览器
browserVersion = "safari浏览器";
}
if (header.indexOf("MSIE") > 0) { // IE浏览器
browserVersion = "IE浏览器";
}
if (header.indexOf("Firefox") > 0) { // 火狐浏览器
browserVersion = "火狐浏览器";
}
if (header.indexOf("Camino") > 0) { // Camino浏览器
browserVersion = "camino浏览器";
}
if (header.indexOf("Konqueror") > 0) { // Konqueror浏览器
browserVersion = "konqueror浏览器";
}
if (header.indexOf("Quark") > 0) { // 夸克浏览器
browserVersion = "quark浏览器";
}
if (header.indexOf("baidu") > 0) { // 百度浏览器
browserVersion = "百度浏览器";
}
if (header.indexOf("Edge") > 0) { // Edge浏览器
browserVersion = "edge";
}
if (header.indexOf("TheWorld") > 0) { // TheWorld浏览器
browserVersion = "theworld浏览器";
}
if (header.indexOf("QQBrowser") > 0 || header.indexOf("TencentTraveler") > 0 || header.indexOf("QQTheme") > 0) { // QQ浏览器
browserVersion = "qq浏览器";
}
if (header.indexOf("Avast") > 0) { // Avast Secure Browser浏览器
browserVersion = "avast浏览器";
}
if (header.indexOf("OPR") > 0) { // Opera浏览器
browserVersion = "opera浏览器";
}
if (header.indexOf("360") > 0) { // 360浏览器
browserVersion = "360浏览器";
}
if (header.indexOf("LBBROWSER") > 0) { // 猎豹浏览器
browserVersion = "猎豹浏览器";
}
if (header.indexOf("Maxthon") > 0) { // 遨游浏览器
browserVersion = "遨游浏览器";
}
if (header.indexOf("MetaSr") > 0 || header.indexOf("Sogou") > 0) { // 搜狗浏览器
browserVersion = "搜狗浏览器";
}
if (header.indexOf("UCWEB") > 0 || header.indexOf("UCBrowser") > 0) { // UC浏览器
browserVersion = "uc浏览器";
}
if (browserVersion == null) { // 没找到的都默认为谷歌浏览器
browserVersion = "谷歌浏览器";
}
System.out.println(browserVersion); // 打印浏览器版本信息
return browserVersion; // 返回浏览器版本信息
}
}

@ -0,0 +1,41 @@
package com.example.api.utils;
import javax.servlet.http.HttpServletRequest;
public class IpUtil {
private static final String LOOPBACK_ADDRESS = "127.0.0.1";
private static final String IPV6_ADDRESS = "0:0:0:0:0:0:0:1";
/**
* HttpServletRequestIPip
*/
public static String getIpAddr(HttpServletRequest request) {
try {
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();
}
//如果使用localhost访问对于windows IPv6会返回0:0:0:0:0:0:0:1将其转为127.0.0.1
if (IPV6_ADDRESS.equals(ip)) {
ip = LOOPBACK_ADDRESS;
}
return ip;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
Loading…
Cancel
Save