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


dimanche 11 juillet 2021

Date manipulation

 LocalDateTime localDateTime = LocalDateTime.now();

int year = localDateTime.getYear();

int month = localDateTime.getMonthValue();

int day = localDateTime.getDayOfMonth();

int hour = localDateTime.getHour();

int minute = localDateTime.getMinute();

int seconde = localDateTime.getSecond();


System.out.println("local date:" + year + "/" + month + "/" + day + ":" + hour + ":" + minute + ":" + seconde);

local date:2021/7/12:12:18:18

-------------------------------------------------------------------------------------

int year = service.getDateService().getYear()+1900;

int month = service.getDateService().getMonth()+1;

System.out.println("année service:"+year);

System.out.println("mois service:"+month);

System.out.println("mois service:"+String.valueOf(year)+String.format("%02d", month));

//année service:2021

//mois service:7

//mois service:202107

   

--> how to resolve a deprecated getYear() and getMonth():

//Initialize your Date however you like it.

Date date = service.getDateService();

Calendar calendar = new GregorianCalendar();

calendar.setTime(date);

int annee = calendar.get(Calendar.YEAR);

//Add one to month {0 - 11}

int mois = calendar.get(Calendar.MONTH) + 1;

int jours = calendar.get(Calendar.DAY_OF_MONTH);

System.out.println("année:"+annee);

System.out.println("mois:"+mois);

System.out.println("jours:"+jours);

//année:2021

//mois:7

//jours:10