java servlet获得客户端相关信息的简单代码
java web很常用的功能代码,可以配合实现IP白名单控制,直接贴代码:
import javax.servlet.http.HttpServletRequest;
public class ClientInfoUtil{
/**
* 获得客户端的IP地址
* @param request
* @return
*/
static public String getIP(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.getRemoteAddr();
}
return ip;
}
/**
* 获得客户端访问服务器的url地址
* @param request
* @return
*/
static public String getURL(HttpServletRequest request) {
String url = request.getScheme()+"://";
url+=request.getHeader("host");
url+=request.getRequestURI();
if(request.getQueryString()!=null) {
url+="?"+request.getQueryString();
}
return url;
}
}
相关文章
JavaWeb项目web.xml中出现Element xxx is not al
这篇文章主要介绍了JavaWeb项目web.xml中出现Element xxx is not allowed here问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-11-11
通过Spring Boot配置动态数据源访问多个数据库的实现代码
这篇文章主要介绍了通过Spring Boot配置动态数据源访问多个数据库的实现代码,需要的朋友可以参考下2018-03-03
Spring SmartLifecycle:如何精准控制Bean的生命周期
这篇文章主要介绍了Spring SmartLifecycle:如何精准控制Bean的生命周期问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2025-03-03
mybatis 返回Integer,Double,String等类型的数据操作
这篇文章主要介绍了mybatis 返回Integer,Double,String等类型的数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11


最新评论