Sto tentando di stampare l'indirizzo IP dell'utente registrato nella mia webApplication. Se un utente si connette da un altro PC (che si trova nella stessa rete, mentre l'applicazione Web è in esecuzione sul mio PC) utilizzando l'indirizzo IP 192.168.10.120:8080/WebApplication
il codice request.getRemoteAddr()
o request.getLocalAddr())
restituisce il suo indirizzo IP. Quando accedo dal mio pc che esegue l'applicazione web, ottengo questo indirizzo IP 0: 0: 0: 0: 0: 0: 0: 1.
Perché è quello? E qual è la differenza tra questi comandi (che dovrei usare?). Grazie mille!Utilizzo di request.getRemoteAddr() restituisce 0: 0: 0: 0: 0: 0: 0: 1
risposta
Nel tuo caso, mentre stai tentando di accedervi sul tuo computer locale, restituirà tale valore. Ma lasciare che uno del tuo amico accedervi, e si riceverà il risultato atteso con getRemoteAddr
Dal javadoc:
getRemoteAddr - Restituisce l'indirizzo IP del client o l'ultimo proxy che ha inviato la richiesta
getLocalAddr - Restituisce l'indirizzo IP dell'interfaccia su cui è stata ricevuta la richiesta.
getRemoteAddr() risolve il vostro scopo, ma se il cliente è dietro ogni procura allora si otterrà l'indirizzo IP del Proxy:
restituisce l'indirizzo IP (Internet Protocol) del cliente o ultima delega che ha inviato la richiesta.
getLocalAddr() restituisce l'IP del server l'applicazione è in esecuzione.
Mentre passiamo a IPv6 da IPv4, stanno cambiando l'indirizzo di loopback (localhost) a 0:0:0:0:0:0:0:1
da 127.0.0.1
ecco perché stai ricevendo questo indirizzo.
Per quanto riguarda le funzioni di:
getRemoteAddr()
restituisce i client IPgetLocalAddr()
restituisce l'IP del server l'applicazione è esecuzione su
invece di dare url come "http://localhost:port/" fornire url come "http://IP:port/" Otterrete l'indirizzo remoto.
Questo non risponde alla domanda e ci sono già risposte accettate. – ziggystar
- 1. Se entrambi [0] == 0 e 0 == [[0]] sono veri del perché è [0] == [[0]] falso?
- 2. su Android getBounds disegnabili return Rect (0, 0 - 0, 0)
- 3. (oggetto) 0 == (oggetto) 0
- 4. Perché 0 === -0 è vero, ma 1/0 === 1/-0 è falso?
- 5. Perché systemLayoutSizeFittingSize restituisce (0, 0) per UITableViewCell?
- 6. bug g ++? (Bool_val 0: 1) restituisce né 0 né 1
- 7. Perché InverseFunction [0 &] @ 0 restituisce 33/10?
- 8. Perché -0 === 0 è vero?
- 9. Cosa significa ?: * (int32 *) 0 = 0;
- 10. exit (0) vs return 0
- 11. Cosa margine: 5px 0; e margine: 5px 0 0; significare?
- 12. Perché 0 && 1 è 1 mentre 1 && 0 è 0 in ruby?
- 13. È! 0 e! 1 meglio di 1 e 0?
- 14. Perché ~ 0 è -1?
- 15. Differenza tra array.GetLength (0) e array.GetUpperBound (0)
- 16. Dovresti usare rgba (0, 0, 0, 0) o rgba (255, 255, 255, 0) per la trasparenza nei CSS?
- 17. Javascript restituisce -0
- 18. filesize() restituisce 0?
- 19. mysql_insert_id() restituisce 0
- 20. parseInt ("08") restituisce 0
- 21. 0-1 algoritmo Knapsack
- 22. perché uno usare MACRO + 0 = 0
- 23. Haskell: Come ottenere "\\ 0" in "\ 0"?
- 24. {0, 0} inizializzerà l'array nella struct?
- 25. Stream.Seek (0, SeekOrigin.Begin) o posizione = 0
- 26. Che cos'è% 0 |% 0 e come funziona?
- 27. Come posso sostituire {0} ma non {{0}}?
- 28. 0 vs '0' con gli operatori booleani
- 29. Perché 0 == [], ma 0 == false e! [] == false?
- 30. functor che restituisce 0
localhost restituirebbe quell'IP. Su altri computer vedrai l'IP attuale. – Makky
Grazie a @Makky conosci la differenza tra questi 2 comandi? – yaylitzis
'getLocalAddr()' ottiene l'indirizzo IP della macchina per ricevere la richiesta. [Fonte] (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getLocalAddr()). Al contrario, 'getRemoteAddr()' ottiene l'indirizzo IP della macchina per richiedere la risorsa [Source] (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr()). –