Ich versuche, eine Java-Webanwendung (Servlet) zu entwickeln, die ich brauche, um die IP-Adresse des Clients zu erhalten.Wie bekomme ich Client-IP-Adresse in Java? HttpServletRequest
Bitte betrachten Sie dies nicht als doppelte Frage, weil ich alle möglichen Antworten ausprobiert habe, die im Stackoverflow verfügbar sind.
Im Anschluss an mein Code so weit:
1)
String ipAddress = request.getRemoteAddr();
In diesem Fall die meisten der Band Ich erhalte die 'Standard-Gateway-Adresse' (147.120.1.5). nicht meine IP-Adresse (174.120.100.17).
2)
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
In diesem Fall die meisten der Band Ich erhalte die 'Standard-Gateway-Adresse' (147.120.1.5). nicht meine IP-Adresse (174.120.100.17).
3)
InetAddress IP=InetAddress.getLocalHost();
System.out.println(IP.getHostAddress());
In diesem Fall habe ich die Server-IP-Adresse bekommen (147.120.20.1).
Meine IP-Adresse in 147.120.100.17. Jetzt weiß ich nicht, wie man die reale Client-IP-Adresse bekommt. Bitte mach eine Antwort.
Vielen Dank.
Es gibt keine genaue Methode ist explizit die Client-IP-Adresse, es sei denn der Kunde zu erhalten sendet es an Sie –
Es gibt nicht die reale IP-Adresse des Kunden zu bekommen, was Sie dort sehen, ist Ihre öffentliche IP-Adresse. –
mögliches Duplikat von [Ist es möglich, die IP-Adresse eines Clients im Java-Servlet genau zu bestimmen] (http://stackoverflow.com/questions/9326138/is-it-possible-to-accurate-determine-the-ip- address-a-client-in-java-servle) – YoYo