Próbuję wydrukować adres IP zalogowanego użytkownika w mojej aplikacji webowej. Jeśli użytkownik łączy się z innym komputerem PC (znajdującym się w tej samej sieci, co aplikacja internetowa działająca na moim komputerze) przy użyciu adresu IP 192.168.10.120:8080/WebApplication
, jego kod IP zwróci kod request.getRemoteAddr()
lub request.getLocalAddr())
. Kiedy loguję się z komputera, na którym uruchamiam aplikację internetową, otrzymuję ten adres IP 0: 0: 0: 0: 0: 0: 0: 1.
Dlaczego tak jest? Jaka jest różnica między tymi poleceniami (których powinienem użyć?). Dziękuję bardzo!Użycie request.getRemoteAddr() zwraca 0: 0: 0: 0: 0: 0: 0: 1
Odpowiedz
W twoim przypadku, próbujesz uzyskać do niego dostęp na komputerze lokalnym, więc zwróci tę wartość. Ale niech jeden z dostępem go znajomemu, a otrzymasz oczekiwany rezultat z getRemoteAddr
Z javadoc:
getRemoteAddr - zwraca adres IP klienta lub ostatniego pełnomocnika, który wysłał żądanie
getLocalAddr - Zwraca adres IP interfejsu, na który otrzymano żądanie.
getRemoteAddr() rozwiązuje swój cel, ale jeśli klient jest za każdym pełnomocnika następnie otrzymasz adres IP serwera proxy:
Zwraca Internet Protocol (IP) Adres strony klienta lub ostatniego pełnomocnika który wysłał żądanie.
getLocalAddr() zwraca IP serwera aplikacji jest uruchomiony.
Gdy przechodzimy do IPv6 z IPv4, zmieniają adres pętli zwrotnej (localhost) na 0:0:0:0:0:0:0:1
z 127.0.0.1
, dlatego otrzymujesz ten adres.
chodzi o funkcje:
getRemoteAddr()
zwraca klientom IPgetLocalAddr()
zwraca IP serwera aplikacja jest uruchomiony na
zamiast podawać adres URL jako "http://localhost:port/" podaj adres URL jako "http://IP:port/" Otrzymasz adres zdalny.
To nie odpowiada na pytanie i są już zaakceptowane odpowiedzi. – ziggystar
- 1. Zookeeper nie może otworzyć gniazda do localhost/0: 0: 0: 0: 0: 0: 0: 1: 2181
- 2. o android Drawable getBounds return Rect (0, 0 - 0, 0)
- 3. Dlaczego 0 === -0 jest prawdziwe, ale 1/0 === 1/-0 jest fałszem?
- 4. Dlaczego systemLayoutSizeFittingSize zwraca (0, 0) dla UITableViewCell?
- 5. {} - 0 VS ({} - 0) w JavaScript
- 6. Co zrobić: 5px 0; i marża: 5px 0 0; oznaczać?
- 7. Zmiana (0, 1) na (0, 1) bez rozgałęzienia
- 8. Dlaczego 0 i& 1 to 1, a 1 i& 0 to 0 w rubinach?
- 9. W String.prototype.slice(), powinny .slice (0, -0) i .slice (0, + 0) dają ten sam wynik?
- 10. Różnica między array.GetLength (0) i array.GetUpperBound (0)
- 11. Dlaczego wyrażenie (0 == 0 & 1 == 1) jest oceniane jako Fałsz?
- 12. PFQuery FindObjectsInBackground Zwraca 0
- 13. CurrentDb.RecordsAffected zwraca 0. Dlaczego?
- 14. recv() zwraca 0
- 15. szerokość jQuery() zwraca 0
- 16. java.lang.ArrayIndexOutOfBoundsException: 0> = 0 próbuje wypełnić JTable
- 17. Nadanie realizacji wartości zwracanej === 0? wartość: 0
- 18. Znaczenie "\ 0 \ 0" w języku Python?
- 19. Co to oznacza ?: * (int32 *) 0 = 0;
- 20. android.database.CursorIndexOutOfBoundsException: wymagany indeks 0, o rozmiarze 0
- 21. Haskell: Jak ustawić "\\ 0" w "\ 0"?
- 22. window.innerWidth = 0?
- 23. Math.floor() | 0
- 24. clientWidth i clientHeight zwraca 0
- 25. Podział liczb całkowitych zwraca 0
- 26. $ (dokument) .scrollTop() zawsze zwraca 0
- 27. Dlaczego Calendar.get (Calendar.MONTH) zwraca 0?
- 28. $ _FILES ["plik"] ["rozmiar"] zwraca 0?
- 29. SimpleDateFormat.parse zwraca errorIndex jako 0
- 30. Dlaczego {} + [] zwraca 0 w JavaScript?
localhost zwróci ten adres IP. Na innych komputerach zobaczysz rzeczywiste IP. – Makky
Dzięki @Makky Czy znasz różnicę między tymi 2 poleceniami? – yaylitzis
'getLocalAddr()' pobiera adres IP urządzenia, aby odebrać żądanie. [Źródło] (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getLocalAddr()). Natomiast 'getRemoteAddr()' uzyskuje adres IP urządzenia, aby zażądać zasobu [Źródło] (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr()). –