Как мы все знаем, адрес IPv4 для localhostis 127.0.0.1(адрес обратной связи). Что такое IPv6 - адрес для localhostи 0.0.0.0как мне нужно , чтобы блокировать некоторые рекламные хосты.
Как мы все знаем, адрес IPv4 для localhostis 127.0.0.1(адрес обратной связи). Что такое IPv6 - адрес для localhostи 0.0.0.0как мне нужно , чтобы блокировать некоторые рекламные хосты.
Ответы:
Как мы все знаем, IPv4-адрес
localhost- это127.0.0.1(адрес обратной связи).
Фактически, любой IPv4-адрес 127.0.0.0/8является адресом обратной связи.
В IPv6 прямым аналогом диапазона обратной петли является ::1/128. Итак ::1(полная форма 0:0:0:0:0:0:0:1) - это единственный адрес обратной петли IPv6.
Хотя имя хоста localhostобычно разрешается в 127.0.0.1или ::1, я видел случаи, когда кто-то привязывал его к IP-адресу, который не является адресом обратной связи. Это немного безумие ... но иногда люди так поступают.
Я говорю «это безумие», потому что этим вы можете нарушить предположения приложения; например, приложение может попытаться выполнить обратный поиск по петлевому IP-адресу и не получить ожидаемый результат. В худшем случае приложение может случайно отправить конфиденциальный трафик по незащищенной сети ... хотя вам, вероятно, придется совершить и другие ошибки, чтобы «добиться» этого.
Блокировка 0.0.0.0не имеет смысла. В IPv4 он никогда не маршрутизируется. Эквивалент в IPv6 - это ::адрес (полная форма 0:0:0:0:0:0:0:0) ... который также никогда не маршрутизируется.
0.0.0.0И ::адреса зарезервированы для обозначения «любой адрес». Так, например, программа, предоставляющая веб-службу, может привязаться к 0.0.0.0порту 80 для приема HTTP-соединений через любой из IPv4-адресов хоста. Эти адреса недействительны в качестве адреса источника или назначения для IP-пакета.
Наконец, в некоторых комментариях был задан вопрос по ::/128сравнению с ::/0против ::.
В чем разница?
Строго говоря, первые два - это нотация CIDR, а не IPv6-адреса. Фактически они указывают диапазон IP-адресов. CIDR состоит из IP-адреса и дополнительного числа, определяющего количество бит в сетевой маске. Эти два вместе определяют диапазон адресов; т.е. набор адресов, образованный игнорированием битов, замаскированных из данного адреса.
Так:
:: означает только IPv6-адрес 0:0:0:0:0:0:0:0::/128означает 0:0:0:0:0:0:0:0с сетевой маской, состоящей из 128 бит. Это дает диапазон сети с одним адресом в нем.::/0означает 0:0:0:0:0:0:0:0с маской сети, состоящей из 0 бит. Это дает диапазон сети с 2 128 адресами в нем .; т.е. это все адресное пространство IPv6!Для получения дополнительной информации прочитайте страницы Википедии об адресах IPv4 и IPv6 и нотации CIDR:
::1- адрес обратной связи в IPv6.
В URL используйте квадратные скобки []:
http://[::1]/http://[::1]:80/Заключение литерала IPv6 в квадратные скобки для использования в URL-адресах определено в RFC 2732 - Формат для буквальных адресов IPv6 в URL-адресах .
Локальный хост ipv6 - это ::1. Неуказанный адрес ::. Это определено в разделе 2.5 RFC 4291 .
Просто для полноты: существуют IPv6-адреса с отображением IPv4 , где вы можете встроить 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)
Для использования в /etc/hostsВ качестве простого метода блокировки рекламы, приводящего к сбою разрешения домена, широко используется адрес 0.0.0.0, поскольку он вызывает немедленный сбой запроса, даже не пытаясь, поскольку это недопустимый или маршрутизируемый адрес. Это по сравнению с использованием 127.0.0.1 в этом месте, где он, по крайней мере, проверит, прослушивает ли ваш собственный компьютер запрошенный порт 80, прежде чем произойдет сбой с «отказом в соединении». Любой из этих адресов, используемых в файле hosts для домена, остановит попытки выполнения любых запросов по реальной сети, но 0.0.0.0 получил признание, потому что он более «оптимален» по вышеуказанной причине. «127» IP-адресов будут пытаться поразить ваш собственный компьютер, а любой другой IP-адрес вызовет отправку запроса на маршрутизатор, чтобы попытаться маршрутизировать его, но для 0.0.0.0 там '
При этом достаточно иметь любой IP-адрес, указанный в вашем файле hosts для блокируемого домена, и вам не нужно и не нужно также помещать адрес ipv6 в файл hosts, если - возможно - вы не включить ipv4. Хотя я был бы очень удивлен, если бы это было так. И тем не менее, я думаю, что наличие хоста в / etc / hosts с плохим адресом ipv4, когда у вас не включен ipv4, все равно даст вам результат, который вы ищете, а именно, чтобы он потерпел неудачу, вместо того, чтобы искать реальный DNS, скажем, adserver-example.com, и получить обратно IP v4 или v6.