Вы не должны использовать 0.0.0.0 таким образом. Даже если это сработало. Причина: вы неизбежно столкнетесь с неприятностями.
Использование 0.0.0.0 для связи HTTP является нарушением стандарта, который официально классифицирует 0.0.0.0 как "непригодный" адрес. Термин "неиспользуемый адрес" в IPv4 относится к первому адресу и последнему адресу любой сети или подсети. 0.0.0.0 - это первый адрес каждой подсети IPv4, частью которой он является.
То, что первый адрес обрабатывается как специальный, обсуждается (используя различные способы указания нотации) по меньшей мере в RFC 894, RFC 919, RFC 1122 и RFC 3021. Основная причина, по которой он был объявлен "непригодным для использования", заключается в том, что он рассматривается как широковещательный адрес. С тех пор более распространенным стандартом IPv4 является то, что последний адрес является широковещательным адресом, но, тем не менее, первый адрес продолжает широко признаваться как "непригодный для использования". Прости, @harrymc, что я не согласен с комментариями на жаргоне. Даже если адрес технически может быть использован и, следовательно, соответствует определению английского слова "usable", в мире сетей существуют некоторые технические термины:"usable address" и "unableable address". На основании этого жаргона отраслевого стандарта 0.0.0.0 классифицируется как "непригодный для использования".
Возможно, нет технической причины, по которой первый адрес должен быть непригодным для использования. Это не результат ограничения, вызванного некоторым ограничением количества чисел, которые могут поместиться в какой-либо группе. Тем не менее, это стандарт на основе консенсуса. Правильно или нет, это реальность. Люди обучены избегать использования этого адреса. В результате многие части программного обеспечения могут проверить, чтобы убедиться, что это стандартное правило не нарушается.
Если вы потратите достаточно времени на продвижение в сети, вы обнаружите, что многие современные сети были разработаны вокруг концепции приятности. Поэтому консенсус важен.
Если вы хотите попытаться нарушить это правило, вы можете попробовать. Существует множество программ с открытым исходным кодом, которые вы можете настроить по своему усмотрению. Однако, если вы сознательно нарушаете общие стандарты (или отказываетесь адаптироваться после того, как узнаете, что неосознанно нарушаете общие стандарты), вы не должны удивляться, если у вас возникнут определенные проблемы. Например: если авторы основного программного обеспечения для просмотра веб-страниц не рассматривают "непригодный" адрес как обычный адрес.
Помимо непригодности, 0.0.0.0 заполнен нулями и делает его очень похожим по концепции на «::», который официально является "неопределенным" адресом в IPv6. Поэтому трактовка 0.0.0.0 как "неуказанного" адреса в IPv4 кажется довольно разумной и согласуется с тем, как команда netstat (особенно с «netstat -na») работает (как в Unix, так и в Microsoft Windows).
В этом смысле использование DHCP 0.0.0.0 имеет большой смысл; перед назначением адреса компьютер использует "неопределенный" адрес. На самом деле, я подозреваю, что компьютер делает ставку на MAC-адрес кадра (уровень 2: Ethernet/Wi-Fi), а не на адрес IPv4 (уровень 3), так что правильный компьютер получает правильный адрес.
Некоторые люди могут думать, что 0.0.0.0 относится к понятию "любой" адрес, возможно, в значительной степени потому, что «netsat -na», казалось, делал это. Если у вас есть представление о том, что вы хотите, чтобы значило 0.0.0.0, знайте, что есть и другие идеи, которые довольно широко распространены. Конфликты и другие подобные неприятности ожидаются за попытку другого подхода.
Говоря о netstat, вы можете обнаружить, что «netstat -nr» показывает запись в таблице маршрутизации для «127.0.0.0/8» или «127.0.0.1/8» (маска подсети IPv4 255.255.255.0) и других сетевых адресов, которые у вас есть. назначенный вашей сетевой карте, но не "0.0.0.0/32" (маска подсети IPv4 255.255.255.255). Хотя вы можете видеть, что «0.0.0.0/0» (маска подсети IPv4 0.0.0.0) настроена на отправку трафика на ваш шлюз по умолчанию IPv4. Это стандартная подсеть и маршрутизация на работе. Если вы не были обучены таким методам, лучше всего не пытаться придумать новый набор личных ожиданий того, как 0.0.0.0 должен работать.
Наконец, обращайтесь к Google Omnibox: я понятия не имею, как это работает. Однако любое использование, основанное на 0.0.0.0, настолько нестандартно, что я предполагаю, что разработчик программного обеспечения (в данном случае Google) может внести изменения в любое время. И если они вносят изменения в любое время, они, скорее всего, отметят только статистически незначительное количество людей. Поэтому лучше всего не полагаться на то, что программное обеспечение в настоящее время обрабатывает адрес 0.0.0.0. Возможно, что Google ищет текст, потому что Google рассматривает ввод (то, что вы ввели в адресной строке) как недействительный текст - то, что Google не распознает как действительный адрес. Это скорее то, что я ожидаю от многих веб-браузеров.
Я понимаю боль, которую вы можете испытывать: «Это сработало раньше; почему это сломалось?"Это понятно. Вполне возможно, что предыдущий способ сделать что-то сломалось. Это то, чем вы рискуете, когда делаете что-то не стандартное. Как я упоминал ранее, поскольку ни один универсальный стандарт явно не ожидает никакого рабочего поведения, можно ожидать, что "нестандартное" ("нестандартное") поведение может нарушиться в любое время. Чтобы избежать этого, лучше всего использовать стандартные методы с четко определенным поведением.
Если вам нужен простой в вводе сетевой адрес, вы можете использовать http://10.1.1.1 или личное имя DNS (например, http:// llll (он же http:// LLLL)). Есть некоторые аргументы, почему частный корень DNS нежелателен, но он, вероятно, будет работать с меньшими проблемами, чем пытаться полагаться на http://0.0.0.0. Или вы можете использовать http:// l (для локального веб-сервера) и использовать свой файл hosts, который может оказаться менее трудоемким, чем настройка пользовательского DNS, по крайней мере для быстрого краткосрочного решения в малом масштабе. Эти решения, вероятно, будут работать лучше, чем продолжать биться головой о стену, пытаясь заставить мир обращаться с http://0.0.0.0 так, как вы этого хотите.
Если вы хотите, чтобы решение работало с веб-браузерами, следуйте советам из комментариев Heavyyd, чтобы попробовать http://127.0.0.1 или IP-адрес, который использует ваша сетевая карта . Вы можете попробовать http://localhost (но при попытке подключения к веб-серверу другим компьютерам следует использовать IP-адрес, отличный от http://127.0.0.1 или http://localhost или http://[::] )
Если вы продолжаете настаивать на использовании 0.0.0.0, вы, вероятно, столкнетесь с этими проблемами:
-
Это может или не может работать, сегодня
-
Люди будут разочарованы попытками помочь вам, так как вы нарушаете стандарты, которые многие другие люди принимают
-
Даже если у вас все работает сегодня, это может сломаться в будущем, если вы сделаете что-то вроде обновления какой-либо части программного обеспечения. Обновление может решить начать обработку 0.0.0.0 как ненормального адреса.
Если вы готовы обойти любые проблемы, включая адаптацию исходного кода, то никто здесь не пытается вас остановить. Только не ожидайте, что другие люди помогут, потому что они могут рассматривать все усилия как пустую трата времени (по сравнению с лучшей альтернативой, которая должна просто соответствовать стандартам). В долгосрочной перспективе существуют другие подходы, которые потребуют меньше усилий, чем попытки навязать определенное поведение адресу 0.0.0.0.