Skip to content
Menu
Leesweb
Leesweb

Come ottenere l’indirizzo IP del client utilizzando Java

Posted on Gennaio 31, 2022 by admin

Nel seguente tutorial vi mostreremo come è possibile ottenere l’indirizzo IP del client utilizzando le specifiche servlet. Discutiamo cosa puoi fare se il tuo cliente è dietro un proxy o un gateway. Spieghiamo perché questo indirizzo IP non è sempre sicuro da usare.

Indirizzo IP del client

In java è possibile accedere all’indirizzo IP del client tramite servlet request.getRemoteAddr().

String ipAddress = request.getRemoteAddr();

Ma questa risposta è tutt’altro che completa ed è piuttosto complicata.

Proxy, gateway reliable affidabile, sicuro?

Se l’applicazione è in esecuzione su un server Web che si trova dietro un proxy inverso o un bilanciamento del carico, allora quel proxy può essere configurato per iniettare l’indirizzo IP richiesto in un’intestazione di richiesta. Diversi proxy inversi possono iniettare intestazioni diverse. Consultare la documentazione del server proxy. Abbiamo elencato un paio dei più utilizzati nel nostro esempio qui sotto, ma questo non è affatto un elenco completo.

  • Quando il client utilizza un proxy (forward), potrebbe inserire intestazioni per indicare quali sono gli indirizzi IP del client. O forse no. E l’indirizzo IP inserito qui potrebbe essere errato.
  • Ciò significa che il valore che si ottiene chiamando request.getRemoteAddr() è l’indirizzo IP dell’origine upstream immediata della richiesta.
  • Come abbiamo detto, ci sono molte intestazioni per diversi proxy in uso, ma è più probabile che x-forwareded-for venga inserito da un proxy.

Come ultima nota, anche se si ottiene un indirizzo IP dall’intestazione o da request.getRemoteAddr() non è garantito essere l’indirizzo IP del client. ad esempio: se il tuo proxy non include l’indirizzo IP del client, otterrai l’indirizzo IP del proxy o del bilanciamento del carico. Se il client funziona su una rete privata e si connette a Internet tramite un gateway NAT, l’indirizzo IP nella richiesta HTTP sarà un indirizzo del server NAT. O anche per un hacker è abbastanza facile iniettare un’intestazione con un indirizzo IP diverso. Quindi questo significa che non è possibile trovare in modo affidabile l’indirizzo IP del sistema da cui ha avuto origine la richiesta.

Ottieni l’indirizzo IP del client

Attenzione: fai attenzione se stai implementando la sicurezza, poiché tutte queste intestazioni sono facili da falsificare.
private static final String IP_HEADER_CANDIDATES = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED", "HTTP_X_CLUSTER_CLIENT_IP", "HTTP_CLIENT_IP", "HTTP_FORWARDED_FOR", "HTTP_FORWARDED", "HTTP_VIA", "REMOTE_ADDR" };public static String getClientIpAddress(HttpServletRequest request) { for (String header : IP_HEADER_CANDIDATES) { String ip = request.getHeader(header); if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { return ip; } } return request.getRemoteAddr();}

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Articoli recenti

  • Il Blog Single
  • Come si fa a guadagnare monete su Disegnare qualcosa?
  • Come lanciare un piombino: mancino e destrorso
  • Come aumentare i livelli di leptina
  • Come esportare i contatti Hotmail?
  • bet365 bonus code: inserire codice d’iscrizione TMG50 per il mese di dicembre 2021
  • Come installare il certificato SSL su Centos 7
  • come calafatare un lavello in acciaio inox (un modo efficace)

Archivi

  • Marzo 2022
  • Febbraio 2022
  • Gennaio 2022
  • Dicembre 2021
  • Novembre 2021

Meta

  • Accedi
  • Feed dei contenuti
  • Feed dei commenti
  • WordPress.org
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
©2022 Leesweb | Theme: Wordly by SuperbThemes