Java 7 dodaje nową metodę statyczną do klasy java.net.InetAddress
:Co zwraca statyczna właściwość InetAddress.getLoopbackAddress()?
static InetAddress getLoopbackAddress()
Returns the loopback address.
Teraz zastanawiam się, jaki adres zostanie zawarta w rezultacie IP4 lub IP6 jeden.
documentation jest nieco mglisty na temat:
InetAddress zwrócone będą reprezentować adres IPv4 loopback, 127.0.0.1 lub adres pętli zwrotnej IPv6 :: 1. Zwrócony adres sprzężenia zwrotnego IPv4 jest tylko jednym z wielu w postaci 127. .. *
Jak Java zdecydować, czy powrócić 127.0.0.1
lub wisiorek IPv6 ::1
?
Czy oba są reprezentowane przez ten sam obiekt InetAdress?
Czy wynik jest zawsze taki sam? Czy to zależy od mojej karty sieciowej?
Nie jestem pewien, czy to prawda. Przynajmniej w Javie 7 domyślnym ustawieniem jest preferowanie stosu IPv6 **, ale preferowanie adresów IPv4 ** (zauważ różnicę). Oznacza to, że 'InetAddress.getLoopbackAddress()' zwróci domyślnie adres IPv4 na większości nowoczesnych systemów operacyjnych. Istnieją dwie różne właściwości (http://docs.oracle.com/javase/7/docs/technotes/guides/net/ipv6_guide/#ipv6-networking), aby to kontrolować. – peterh
Jestem prawie pewien, że EJP jest całkowicie poprawny, po prostu pominął domniemane "adresy" po "IPv4" w swojej odpowiedzi.Jeśli istnieje stos IPv6 (jest to właściwość, która po przeczytaniu linku jest * usuwana * po ustawieniu preferowanego stosu jako IPv4), ale adresy IPv4 nie są preferowane, to adresy IPv6 będą domyślnie ustawione. – codetaku