vendredi 16 juillet 2021

Spring Boot Get Client IP Adress

private final String LOCALHOST_IPV4 = "127.0.0.1";

private final String LOCALHOST_IPV6 = "0:0:0:0:0:0:0:1";


public String getClientIp(HttpServletRequest request) {

String ipAddress = request.getHeader("X-Forwarded-For");

if(StringUtils.isEmpty(ipAddress) || "unknown".equalsIgnoreCase(ipAddress)) {

ipAddress = request.getHeader("Proxy-Client-IP");

}


if(StringUtils.isEmpty(ipAddress) || "unknown".equalsIgnoreCase(ipAddress)) {

ipAddress = request.getHeader("WL-Proxy-Client-IP");

}


if(StringUtils.isEmpty(ipAddress) || "unknown".equalsIgnoreCase(ipAddress)) {

ipAddress = request.getRemoteAddr();

if(LOCALHOST_IPV4.equals(ipAddress) || LOCALHOST_IPV6.equals(ipAddress)) {

try {

InetAddress inetAddress = InetAddress.getLocalHost();

ipAddress = inetAddress.getHostAddress();

} catch (UnknownHostException e) {

e.printStackTrace();

}

}

}


if(!StringUtils.isEmpty(ipAddress)

&& ipAddress.length() > 15

&& ipAddress.indexOf(",") > 0) {

ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));

}


return ipAddress;

}

@RequestMapping(value="/Index")

public String Index(HttpServletRequest request) {

System.out.println("mon adresse ip:"+getClientIp(request));

}


run console:

mon adresse ip:xxx.xxx.xxx.xxx


Aucun commentaire:

Enregistrer un commentaire