Por que meu host local não é 127.0.0.1, mas :: 1, e que notação é essa? [duplicado]

62

Quando uso o comando Ping no meu host local (no Windows Vista), ele não aparece como 127.0.0.1.

C: \ Windows \ system32> ping localhost
Pinging GIGA [:: 1] de :: 1 com 32 bytes de dados:

pingue-pongue

Em vez disso, ele aparece como ::1(dois pontos e um). Que tipo de notação é essa? E por que não está aparecendo como 127.0.0.1?

Aqui está o que vejo no c:\windows\system32\drivers\etc\hostsarquivo.

:: 1 localhost
127.0.0.1 localhost

Conforme sugerido por Gregg, eu já tentei alterar essa ordem.

127.0.0.1 localhost
:: 1 localhost

O resultado esperado é que 127.0.0.1isso tenha precedência, ::1mas esse não foi o caso.

Como aprendi agora, isso pode ser feito adicionando uma política de prefixo. Para forçar o cmd a usar a versão 4 do IP, a opção -4pode ser usada. Para forçar o Windows a sempre usar o IP versão 4, o IP versão 6 ou alguns de seus componentes podem ser desabilitados na caixa de diálogo de propriedades do adaptador de rede ou através de um ajuste no registro .

Samir
fonte
7
Na resposta de Tom Wijsman, você descobrirá superuser.com/questions/414050/…
Rudolph
11
Não é apenas esse IPv6, mas não há nada de especial ou codificado localhost; é especificado no HOSTSarquivo . É 127.0.0.1por padrão, mas você pode alterá-lo para o que quiser ou removê-lo completamente.
21413 Synetech
11
@Synetech no Windows 7 é comentado por padrão com uma nota:localhost name resolution is handled within DNS itself.
gronostaj

Respostas:

90

Isso ocorre porque o ping no Windows Vista e no Windows mais recente usa o IPv6 por padrão, quando disponível. ::1é uma notação reduzida do endereço de loopback do IPv6 - equivalente ao loopback do IPv4 127.0.0.1.

A notação completa do ::1endereço IPv6 abreviado é 0000:0000:0000:0000:0000:0000:0000:0001.

Se você deseja forçar o pinguso do IPv4, pode especificar o endereço IPv4 explicitamente ou usar a -4opção

ping 127.0.0.1
ping -4 localhost

Se você deseja alterar a preferência geral do IPv6 / IPv4, verifique a prioridade entre IPv4 e IPv6 no Windows 7 .

Para informações adicionais, você também pode ver o artigo localhost .

pabouk
fonte
18

[::1]é uma abreviação de endereço de loopback no IPv6. Se você deseja desativar o IPv6 por algum motivo (eu não o aconselho, mas você pode ter um motivo específico para querer), tudo o que você precisa fazer é o seguinte (no Windows 7):

  • Iniciar, Painel de Controle
  • Rede e compartilhamento
  • Exibir rede ativa, conexão de área local, propriedades
  • Desmarque a caixa de seleção ao lado de Internet Network Protocol Versão 6

Se você quiser capturas de tela, um guia da Microsoft pode ser encontrado aqui: link .

Além disso, você também pode dar uma olhada na página da Wikipedia para IPv6, especificamente na apresentação :

O endereço do host local (loopback), 0: 0: 0: 0: 0: 0: 0: 1 e o endereço não especificado do IPv6, 0: 0: 0: 0: 0: 0: 0: 0: 0: 0, são reduzidos a: 1 e ::, respectivamente. Essa substituição de dois-pontos pode ser aplicada apenas uma vez em um endereço, porque várias ocorrências criariam uma representação ambígua.

Para resumir, isso é basicamente o equivalente a querer escrever todos os números de 1 a 100, mas, em vez de escrever cada número individualmente, você escreve 1, 2, 3...99, 100ou1-100

Michael H
fonte