Что такое IPV6 для localhost и 0.0.0.0?

Как мы все знаем, IPv4-адрес для localhost - 127.0.0.1 (loopback-адрес). Что такое IPv6-адрес для localhost и 0.0.0.0 поскольку мне нужно блокировать некоторые рекламные хосты.

Ответ 1

Как и все мы сейчас, IPv4-адрес для localhost - 127.0.0.1 (адрес обратной связи).

Фактически, любой адрес IPv4 в 127.0.0.0/8 является адресом обратной связи.

В IPv6 прямым аналогом петлевого диапазона является ::1/128. Итак, ::1 - это единственный петлевой адрес IPv6.

И хотя имя хоста localhost обычно разрешается в 127.0.0.1 или ::1, я видел случаи, когда кто-то связывал его с IP-адресом, который не является петлевым адресом.Это немного безумно... но иногда люди делают это.


Блокировка 0.0.0.0 не имеет смысла. В IPv4 он никогда не маршрутизируется. Эквивалентом в IPv6 является адрес :: /128... который также никогда не маршрутизируется.

Адреса 0.0.0.0 и :: /128 зарезервированы для обозначения "любой адрес". Так, например, программа, предоставляющая веб-сервис, может связываться с портом 80 0.0.0.0 для приема HTTP-соединений через любой из адресов IPv4 хоста.


Для получения дополнительной информации прочитайте страницы Википедии по адресам IPv4 и IPv6:

Ответ 2

IPv6 localhost

::1 - это петлевой адрес в IPv6.

Внутри URL

В URL-адресе используйте квадратные скобки []:

  • http://[::1]/
    По умолчанию используется порт 80.
  • http://[::1]:80/
    Укажите порт.

Заключение литерала IPv6 в квадратные скобки для использования в URL-адресе определено в RFC 2732 - Формат литеральных адресов IPv6 в URL-адресе.

Ответ 3

IPv6 localhost - ::1. Неопределенный адрес :: Это определено в разделе 2.5 RFC 4291.

Ответ 4

Для использования в /etc/hosts в качестве простой техники блокировки рекламы, которая приводит к сбою разрешения домена, широко используется адрес 0.0.0.0, поскольку он вызывает немедленный сбой запроса, даже не пытаясь его выполнить, поскольку он недопустим или маршрутизируемый адрес. Это по сравнению с использованием 127.0.0.1 в этом месте, где он, по крайней мере, проверит, прослушивает ли ваш собственный компьютер запрошенный порт 80, прежде чем произойдет сбой с сообщением "отказано в соединении". Любой из этих адресов, используемых в файле hosts для домена, не позволит выполнять любые запросы по фактической сети, но 0.0.0.0 получил преимущество, поскольку он более "оптимален" по вышеуказанной причине. "127" IP-адреса будут пытаться попасть на ваш собственный компьютер, а любой другой IP-адрес вызовет отправку запроса на маршрутизатор, чтобы попытаться направить его, но для 0.0.0.0 некуда даже отправить запрос.

При этом достаточно указать любой IP-адрес, указанный в файле хостов, для блокировки домена, и вам не нужно или не нужно добавлять адрес ipv6 в файл хостов, если - возможно, - вы этого не сделаете. ipv4 включен вообще. Я был бы очень удивлен, если бы это было так. И все же, хотя, я думаю, что появление хоста в /etc/hosts с плохим адресом ipv4, когда у вас не включен ipv4, все равно даст вам результат, который вы ищете, а именно, что он потерпит неудачу, вместо поиска реальный DNS, скажем, adserver-example.com и получение IP-адреса v4 или v6.

Ответ 5

Просто ради полноты: существуют IPv4-сопоставленные IPv6-адреса, куда вы можете встроить IPv4-адрес в IPv6-адрес (может поддерживаться не каждым оборудованием IPv6).

Пример: я запускаю сервер на своем компьютере, доступ к которому можно получить через http://127.0.0.1:19983/solr. Если я получаю к нему доступ через IPv4-сопоставленный IPv6-адрес, то я получаю к нему доступ через http://[::ffff:127.0.0.1]:19983/solr (который будет преобразован в http://[::ffff:7f00:1]:19983/solr)