Почему мой localhost не 127.0.0.1, а :: 1, и что это за нотация? [Дубликат]


62

Когда я использую команду Ping для своего локального хоста (в Windows Vista), она не отображается как 127.0.0.1.

C: \ Windows \ system32> ping localhost
Pinging GIGA [:: 1] из :: 1 с 32 байтами данных:

пинг-понг

Вместо этого он отображается как ::1(пара двоеточий и один). Что это за нотация? И почему он не отображается как 127.0.0.1?

Вот что я вижу в c:\windows\system32\drivers\etc\hostsфайле.

:: 1 localhost
127.0.0.1 localhost

По предложению Грегга я уже пытался изменить этот порядок.

127.0.0.1 localhost
:: 1 localhost

Ожидаемый результат заключается в том, что он 127.0.0.1будет иметь приоритет над, ::1но это не так.

Как я узнал сейчас, это можно сделать, добавив вместо этого политику префикса. Чтобы заставить cmd использовать IP версии 4, -4можно использовать эту опцию . Чтобы заставить Windows всегда использовать IP-версию 4, IP-версию 6 или некоторые ее компоненты можно отключить в диалоговом окне свойств сетевого адаптера или в настройках реестра .


7
В ответе Тома Вийсмана вы найдете superuser.com/questions/414050/…
Рудольф,

1
Мало того, что IPv6, но нет ничего особенного или жестко запрограммированного localhost; это указано в HOSTSфайле . Это 127.0.0.1по умолчанию, но вы можете изменить его на то, что хотите, или вообще удалить.
Synetech

1
@Synetech в Windows 7 по умолчанию закомментирован с примечанием:localhost name resolution is handled within DNS itself.
gronostaj

Ответы:


90

Это связано с тем, что ping в Windows Vista и более новых версиях Windows по умолчанию использует IPv6 , если он доступен. ::1сокращенная запись адреса обратной связи IPv6 - эквивалент обратной петли IPv4 127.0.0.1.

Полное обозначение сокращенного ::1адреса IPv6 0000:0000:0000:0000:0000:0000:0000:0001.

Если вы хотите принудительно pingиспользовать IPv4, вы можете указать адрес IPv4 явно или использовать -4опцию.

ping 127.0.0.1
ping -4 localhost

Если вы хотите изменить предпочтения IPv6 / IPv4 в целом, вы можете проверить приоритет IPv4 по сравнению с IPv6 в Windows 7 .

Для получения дополнительной информации вы также можете увидеть статью localhost .


18

[::1]это сокращение для петлевого адреса в IPv6. Если по какой-то причине вы хотите отключить IPv6 (я бы не советовал, но у вас может быть конкретная причина для этого), все, что вам нужно сделать, это следующее (для Windows 7):

  • Пуск, Панель управления
  • Сеть и обмен
  • Просмотр активной сети, подключение по локальной сети, свойства
  • Снимите флажок рядом с Интернет-протокол версии 6

Если вы хотите скриншоты, руководство от Microsoft можно найти здесь: ссылка .

Кроме того, вы также можете взглянуть на страницу Википедии для IPv6, в частности, презентацию :

Адрес локального (петлевого) адреса 0: 0: 0: 0: 0: 0: 0: 1 и неопределенный адрес IPv6 0: 0: 0: 0: 0: 0: 0 сокращаются до :: 1 и :: соответственно. Эту замену с двумя двоеточиями можно применять только один раз в адресе, поскольку множественные вхождения могут создать неоднозначное представление.

Подводя итог, это в основном эквивалентно желанию написать каждое число от 1 до 100, но вместо того, чтобы писать каждое число по отдельности, вместо этого вы пишете 1, 2, 3...99, 100или1-100

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.