Perché il mio localhost non è 127.0.0.1 ma :: 1 e che notazione è? [duplicare]


62

Quando utilizzo il comando Ping sul mio localhost (su Windows Vista), non viene visualizzato come 127.0.0.1.

C: \ Windows \ system32> ping localhost Ping
GIGA [:: 1] da :: 1 con 32 byte di dati:

ping pong

Invece, si presenta come ::1(una coppia di due punti e uno). Che tipo di notazione è questa? E perché non viene visualizzato come 127.0.0.1?

Ecco cosa vedo nel c:\windows\system32\drivers\etc\hostsfile.

:: 1 localhost
127.0.0.1 localhost

Come suggerito da Gregg, ho già provato a cambiare questo ordine.

127.0.0.1 localhost
:: 1 localhost

Il risultato atteso è che 127.0.0.1avrebbe la precedenza, ::1ma non era così.

Come ho imparato ora, questo può essere fatto aggiungendo invece una politica di prefisso. Per forzare cmd a utilizzare IP versione 4 è -4possibile utilizzare l'opzione . Per forzare Windows a utilizzare sempre IP versione 4, IP versione 6 o alcuni dei suoi componenti possono essere disabilitati attraverso la finestra di dialogo delle proprietà per la scheda di rete o tramite una modifica del registro .


7
Nella risposta di Tom Wijsman scoprirai superuser.com/questions/414050/…
Rudolph

1
Non solo IPv6, ma non c'è nulla di speciale o hardcoded localhost; è specificato nel HOSTSfile . È 127.0.0.1di default, ma puoi cambiarlo come preferisci o rimuoverlo del tutto.
Synetech,

1
@Synetech su Windows 7 è commentato di default con una nota:localhost name resolution is handled within DNS itself.
gronostaj

Risposte:


90

Questo perché il ping su Windows Vista e Windows più recenti utilizza IPv6 per impostazione predefinita quando disponibile. ::1è una notazione abbreviata dell'indirizzo di loopback IPv6 - equivalente del loopback IPv4 127.0.0.1.

La notazione completa ::1dell'indirizzo IPv6 abbreviato è 0000:0000:0000:0000:0000:0000:0000:0001.

Se si desidera forzare pingl'utilizzo di IPv4 invece è possibile specificare esplicitamente l'indirizzo IPv4 o utilizzare l' -4opzione.

ping 127.0.0.1
ping -4 localhost

Se si desidera modificare la preferenza IPv6 / IPv4 in generale, è possibile controllare la priorità IPv4 vs IPv6 in Windows 7 .

Per ulteriori informazioni puoi anche consultare l'articolo localhost .


18

[::1]è una scorciatoia per l'indirizzo di loopback in IPv6. Se desideri disabilitare IPv6 per qualche motivo ( non lo consiglierei, ma potresti avere un motivo specifico per volerlo), tutto ciò che devi fare è il seguente (per Windows 7):

  • Start, Pannello di controllo
  • Rete e condivisione
  • Visualizza rete attiva, connessione alla rete locale, proprietà
  • Deseleziona la casella di controllo accanto a Internet Network Protocol versione 6

Se desideri schermate, puoi trovare una guida di Microsoft qui: link .

Inoltre, potresti anche dare un'occhiata alla pagina Wikipedia per IPv6, in particolare Presentazione :

L'indirizzo localhost (loopback), 0: 0: 0: 0: 0: 0: 0: 1 e l'indirizzo non specificato IPv6, 0: 0: 0: 0: 0: 0: 0: 0, sono ridotti a :: 1 e ::, rispettivamente. Questa sostituzione a due punti può essere applicata una sola volta in un indirizzo, poiché più occorrenze creerebbero una rappresentazione ambigua.

Per riassumere, questo è fondamentalmente l'equivalente di voler scrivere ogni numero da 1 a 100, ma invece di scrivere ogni numero singolarmente, invece scrivi 1, 2, 3...99, 100o1-100

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.