Какой у меня IP

Показывает публичные IPv4 и IPv6 сразу, отличает семейство, которого у вас нет, от заблокированного по пути, и называет ответивший дата-центр.

Три показания начинаются сразу при загрузке страницы.

IPv4
Определить не удалось

Точка, доступная только по IPv4, ещё не ответила.

IPv6
Определить не удалось

Точка, доступная только по IPv6, ещё не ответила.

Предпочтённое семейство: Пока неизвестно — показание от самого этого сайта ещё не пришло.

Точка IPv4

К ней обращаются прямо по адресу IPv4, поэтому дойти до неё можно только по IPv4 — и то, что она сообщает, и есть ваш адрес IPv4.

Спрашиваем…

Точка IPv6

К ней обращаются прямо по адресу IPv6, по той же причине наоборот: ничем, кроме IPv6, туда не попасть.

Спрашиваем…

Этот сайт

Этот сайт предлагает оба семейства, поэтому ответившее — то, которое браузер выбрал сам.

Спрашиваем…

Два семейства адресов

Любое соединение идёт по IPv4 или по IPv6 и никогда по обоим сразу. Большинство сетей сегодня несут оба, поэтому один адрес — только половина ответа: ваши IPv4 и IPv6 это разные числа, они идут разными маршрутами, и каждое может существовать без другого.

Кого спрашивают

Три запроса уходят одновременно, все к точке trace у Cloudflare: один на записанный целиком адрес IPv4, один на записанный целиком адрес IPv6 и один на сам этот сайт. Записанный адрес и есть привязка к семейству — никакое имя не разрешается, — поэтому до первых двух можно дойти только тем семейством, которым они записаны, а третий сообщает, какое семейство выбрал браузер.

Как читать строку

Каждая строка — один ответ одной точки, вместе со страной, дата-центром Cloudflare, версией TLS, версией HTTP и состоянием WARP, которые пришли с ним. Они принадлежат строке, а не вам: одна и та же машина в один и тот же момент может дойти до одного дата-центра по IPv4 и до другого по IPv6, так что строкам позволено расходиться.

Что это раскрывает

Ничего из набранного вами никуда не уходит — здесь нечего набирать. Три запроса раскрывают ваш адрес Cloudflare, которая и так отдаёт эту страницу и уже его знала; вопрос задаётся вслух, а не отвечается молча. Ни один адрес не сохраняется, не переносится между визитами и не пишется в исходный код страницы — потому его там и не может быть при загрузке.

Почему браузер не может ответить на это сам

Такая страница выглядит так, будто может просто считать ответ с машины, на которой работает, — и не может. В браузерной платформе нет ничего, что раскрывало бы адрес, с которого вы выходите в интернет: нет свойства, которое читается, и нет разрешения, которое выдаётся. Адрес, который держит ваша собственная машина, почти никогда не тот, о котором вы спрашиваете: за домашним маршрутизатором это частный номер, который маршрутизатор переписывает на выходе, а в мобильной сети его может переписать ещё раз оператор. Единственная возможность браузера, когда-либо утекавшая адресом, — WebRTC, собиравший адреса самой машины, чтобы установить звонок, и всякий современный браузер прячет теперь и это за случайным именем, оканчивающимся на local. То есть через платформу число не было доступно никогда, а то немногое, что утекало, было всё равно не тем числом.

Адрес, который вы на самом деле имеете в виду, — не свойство вашего компьютера. Это то, что видит дальний конец соединения, когда до него доходит ваш трафик, и принадлежит он тому оборудованию, которое переписало его последним: вашему маршрутизатору, общему NAT оператора, точке выхода VPN, корпоративному прокси. Он существует только в глазах сервера, к которому вы обратились. Поэтому единственный способ его узнать — обратиться к такому серверу и спросить, что он увидел, и поэтому эта страница спрашивает трижды, а не один раз.

  • Это не тот адрес, который операционная система показывает для сетевой карты. Тот обычно частный — адрес 192.168, адрес 10, адрес 172.16 — и что-то значит только внутри вашей же сети. По ту сторону маршрутизатора его не видит никто.
  • Он не постоянный. Большинству домашних подключений выдают адрес, который может смениться, когда маршрутизатор переподключится или когда так решит оператор, а мобильное подключение может менять его на ходу. Адрес, вписанный в правило брандмауэра месяц назад, уже может принадлежать кому-то другому.
  • И это не обязательно одно число. В сети, несущей оба семейства, у вас одновременно есть адрес IPv4 и адрес IPv6; это несвязанные числа, выданные разными частями одного и того же оператора, и идут они разными маршрутами.

Поэтому же ответа нет и в исходном коде страницы, и заглянувший туда не найдёт ничего. Каждая страница этого сайта записывается плоским файлом HTML при сборке сайта, задолго до того, как вы её откроете, и единственный адрес, доступный в тот момент, — адрес сборочной машины, который никого не касается и вас уж точно. Поэтому доходящий до вас файл несёт объяснение и три пустых подписанных места, а показания заполняются потом — вашим собственным браузером и из вашего собственного соединения. Если вы посмотрите исходный код и не найдёте адреса, вы читаете замысел, а не сбой.

Два семейства, и почему ответить может лишь одно

IPv4 и IPv6 — две отдельные системы адресов, и каждое отдельное соединение использует ровно одну из них от конца до конца. Адреса IPv4 — это привычные четыре числа, разделённые точками, и запас их кончился много лет назад; адреса IPv6 — длинные, записанные шестнадцатеричными группами через двоеточия, и их больше, чем кто-либо когда-нибудь потратит. Большинство сетей сегодня несут оба сразу — это и значит двойной стек — и в такой сети у вас есть адрес в каждом, без всякой арифметической связи между ними.

Именно это делает одно показание половиной ответа, и в эту ловушку попадает почти всякий инструмент такого рода. У имени этого сайта есть и запись IPv4, и запись IPv6, так что браузер выбирает одно из двух ещё до того, как здесь выполнится хоть строка кода, и инструмент, спрашивающий только «с какого адреса это пришло», узнаёт про то семейство и ни про какое другое. Читателю, пришедшему за своим IPv4, потому что его требует правило брандмауэра, могут показать IPv6 — и на странице не будет ничего, что сказало бы ему, что вторая половина существует, отсутствует или просто не была спрошена.

Привязать семейство — значит поэтому спросить там, где оно только одно. Два показания из трёх уходят к публичному распознавателю имён Cloudflare по адресу, записанному целиком, а не по имени, и записанный целиком адрес и есть сама привязка: разрешать нечего, так что у браузера нет выбора. До записанного целиком адреса IPv4 можно дойти только по IPv4, а до записанного целиком адреса IPv6 — только по IPv6, и сертификат покрывает сам адрес, так что каждое из них — обычное проверенное шифрованное соединение, а не трюк. Что вернулось от первого, то и есть ваш IPv4 по построению, а что вернулось от второго — ваш IPv6 по построению.

  • Семейства может просто не быть. IPv6 предлагают ещё не всякий оператор, не на всяком тарифе и не на всяком маршрутизаторе в том виде, в каком он приехал из коробки, и сети без него сообщать нечего.
  • Что-то по пути может его останавливать. Корпоративный брандмауэр, гостиничная сеть или защитное устройство способны отказать целому семейству — или отказать именно этой точке, пока остальное семейство работает прекрасно.
  • Блокировка бывает молчаливой, а не явной. Отказ приходит сразу, и строка так и говорит; пакеты, отброшенные без ответа, выглядят ровно как ничего, и поэтому каждому показанию даётся ограниченное ожидание, после чего его оставляют, а не крутят вечно.
  • Точка может ответить чем-то, что не является адресом. Это не то же самое, что молчание, и строка говорит, что именно случилось: инструмент, свернувший все виды неудачи в одно пустое поле, лишил бы вас возможности отличить необычную сеть от сломанной страницы.

«Определить не удалось» — это не «у вас нет»

Две ситуации важнее здесь всех прочих, и по неудавшемуся запросу они выглядят одинаково: не иметь семейства вовсе и иметь его заблокированным на выходе. Инструменты такого рода сообщают о них одинаково — обычно ничего не показывая и оставляя вас гадать. Эта страница их разделяет, и третье показание — весь механизм этого. Оно уходит к самому этому сайту, который предлагает оба семейства, так что ответившее — то, которое браузер выбрал, когда выбор был свободен; и одного этого факта хватает, чтобы превратить молчание в вывод.

  • Собственная точка семейства ответила. Семейство у вас есть, его адрес стоит строкой ниже, и ничто другое, что узнает страница, этого не отменит.
  • Она не ответила, а до этого сайта браузер дошёл по тому же самому семейству. Значит, оно у вас доказуемо есть — вы читаете им эту самую фразу, — и что-то между вами и той одной точкой остановило именно тот запрос. Вывод — определить не удалось, и причина написана рядом.
  • Она не ответила, а до этого сайта браузер дошёл по другому семейству. Это единственный путь к «у вас его нет», и единственный случай, когда страница это скажет.
  • Не ответила ни она, ни сам этот сайт. Тогда доказательств нет ни в одну сторону, и «определить не удалось» значит ровно это: инструмент не узнал ничего — утверждение об инструменте, а не о вашей сети.

Поэтому под каждым выводом стоит целая фраза, а не ссылка и не подсказка. «Определить не удалось» требует от вас двух совершенно разных вещей в зависимости от того, какой из двух случаев перед вами. Один говорит, что семейство, которое у вас точно есть, где-то между браузером и одним конкретным адресом блокируется, — и с этим стоит пойти разбираться. Другой говорит, что прогон не узнал ничего и его стоит повторить из другой сети. Цвет и слово этой разницы не унесут, а инструмент, который угадывал бы между ними, сообщал бы вам неправду о вашем же соединении.

Третье показание стоит прочесть и само по себе. Оно называет семейство, которое браузер предпочёл для обычного имени, предлагающего оба, — исход гонки, которую операционная система устраивает всякий раз, когда вы открываете страницу, и которую не решал никто из вас и не настраивал никто вообще, — и ни один сопоставимый инструмент о нём не сообщает. Оно же и есть тот факт, по которому сверялись оба вывода выше, и потому оно на странице, а не спрятано внутри рассуждения: читатель, предпочитающий проверить вывод, а не поверить ему, видит доказательство, из которого тот выведен.

Почему двум строкам позволено не совпадать

Каждое показание несёт больше, чем адрес. Тот же ответ сообщает страну, в которую точка поместила пришедший адрес, ответивший дата-центр Cloudflare, версию шифрованного транспорта, версию HTTP, которой воспользовался запрос, и то, пришло ли соединение через собственный клиент WARP у Cloudflare. Это печатается для каждой строки отдельно и никогда не сводится в одну сводку, потому что строки действительно расходятся: пока этот инструмент проектировался, одна машина в один момент дошла до дата-центра в Лондоне по IPv6 и до дата-центра в Израиле по IPv4. Ни одно показание не было ошибочным и ни одна сеть — неисправной.

  • Страна — это то, куда точка помещает пришедший адрес; это поиск по адресу, а не какое-либо знание о вас. VPN её сдвигает, и так же делает оператор, раздающий адреса, зарегистрированные в соседней стране.
  • Дата-центр — это ответившая площадка Cloudflare, трёхбуквенным кодом в духе кода аэропорта. Каждая из этих точек анонсируется сразу из многих мест, и до какой дойдёте вы, решает маршрутизация в интернете — отдельно для каждого семейства, отчего именно эта строка расходится чаще прочих.
  • TLS — версия шифрования, на которой сошлось соединение. Она согласуется для каждого соединения отдельно, так что одна строка может отличаться от другой без всякой необычности.
  • HTTP — версия протокола, которой воспользовался именно этот запрос. Она тоже решается для каждого соединения и зависит от того, как соединение было установлено, а не от чего-либо в вашей сети.
  • WARP говорит, распознала ли Cloudflare трафик как идущий через её собственный клиент. У большинства читателей он выключен во всех трёх строках, и стоит здесь потому, что читателя, у которого он не выключен, иначе озадачила бы страна.

Так что читайте строку как рассказ об одном соединении и ни о чём более широком. Две строки, называющие два дата-центра, — не противоречие, которое надо разрешить; это два ответа о том, как ваши два семейства выходят из вашей сети, и как раз этого инструмент с одним адресом показать вам не может. Это и есть причина, по которой эти факты вообще привязаны к строкам: свернув их в одну, пришлось бы выбрать один из двух ответов и напечатать его так, будто он описывает оба.

Кого спрашивают, и чего этот инструмент делать не станет

Все три запроса уходят в одно и то же место: к точке trace у Cloudflare, отвечающей коротким перечнем фактов о только что пришедшем соединении. Сам этот сайт обслуживается через Cloudflare, так что спрашивают того, кто ваш адрес уже видел, — увидел, когда эта страница загружалась, ещё до того, как выполнилась хоть строка её собственного кода. Три запроса вслух просят то, что мгновением раньше было отдано молча, и никому новому этого не передают. Поэтому они делаются автоматически, а не за кнопкой: заслон согласия перед ними стоил бы вам того ответа, за которым вы пришли, и не купил бы ровным счётом ничего.

Довод этот частный, и стоит сказать прямо, что он не общее разрешение, потому что о почти любой другой точке та же фраза была бы ложной. Он верен, только пока спрашиваемая сторона — та же, что уже отдаёт страницу. Направьте такой инструмент к стороннему сервису адресов, и запрос перестанет быть эхом и станет настоящим раскрытием перед тем, у кого не было ничего, — и вот тут рассуждение придётся строить заново с начала, а не цитировать отсюда. Это одна из причин, по которым эта страница таким сервисом не пользуется.

Ничто из набранного вами никуда не отправляется — по той простой причине, что здесь нечего набирать: у страницы вообще нет поля ввода. Ни один адрес не сохраняется, не переносится между визитами и не записывается ни во что, что страница оставляет после себя. Нажатие «Обновить» берёт все три показания заново с самого начала и выводит оба заключения снова — именно это и делает страницу достойной того, чтобы держать её открытой, пока VPN поднимается или падает; и это же единственное, что вообще отправляет запросы во второй раз.

  • Он не станет искать чужой адрес. Для этого нужна коммерческая база геолокации, опрашиваемая через третью сторону, а это отдало бы адрес тому, у кого его не было, — и это к тому же другой вопрос, чем тот, который задан в названии страницы.
  • Он не назовёт вашего оператора, номер его автономной системы или город. Ничего этого в приходящих сюда ответах нет, а получение проходит через ту же третью сторону, что и выше.
  • Он не покажет ваш локальный или частный адрес. Ни один современный браузер его больше не раскрывает, и это никогда не был тот адрес, который люди имеют в виду, задавая этот вопрос: его им и так показывает их собственная машина.

Ни одно из этого не пробел, ждущий заполнения. Каждое пришлось бы купить зависимостью от чужой базы и чужой продолжающейся доброй воли, а заплатить тем единственным, к чему эта страница относится бережно. Инструмент, отвечающий на один вопрос целиком — оба семейства, с доказательством для каждого и с честным молчанием там, где доказательства нет, — стоит здесь больше, чем отвечающий на четыре вопроса наполовину.

Частые вопросы

Другой сайт показывает мне другой адрес. Какой из них верный?
Скорее всего, оба. Большинство инструментов такого рода сообщают адрес, с которого пришло соединение к ним, то есть то семейство, которое выбрал ваш браузер, — так что сайт, показывающий вам IPv4, пока эта страница показывает IPv6, не спорит с ней, а отвечает про другую половину. Сравнивайте подобное с подобным: их ответ против здешней строки того же семейства. Если эти два действительно расходятся, значит, трафик выходит из вашей сети не одним маршрутом — VPN с раздельным туннелированием или оператор с несколькими выходами, — и это стоит знать, а не считать сбоем одной из страниц.
Написано, что мой IPv6 определить не удалось. Есть у меня IPv6 или нет?
Прочтите фразу под выводом: она стоит там ровно ради этого вопроса. Если в ней сказано, что браузер дошёл до этого сайта по IPv6, значит, IPv6 у вас есть и вы им сейчас пользуетесь, а что-то между вами и привязанной точкой остановило именно тот запрос — брандмауэр, защитное устройство или сеть, разрешающая семейство, но не этот адрес. Если сказано, что не ответили ни точка, ни сам сайт, то не узнано ничего ни в одну сторону, и честный ответ — что инструмент не знает. Это разные положения, и страница отказывается сворачивать их в одно.
Можно ли посмотреть чужой адрес или узнать, где находится адрес?
Нет, и это решение, а не упущение. Для ответа нужна коммерческая база геолокации, опрашиваемая через третью сторону: это сделало бы её первым здешним инструментом, зависящим от внешней службы, и отправило бы адрес тому, у кого его прежде не было. Это к тому же другой вопрос, чем тот, по которому названа страница: этот инструмент спрашивает, как ваше собственное соединение выглядит снаружи, и всё, о чём он сообщает, приходит из вашего соединения, а не из базы данных о ком-то.
Отправляется ли мой адрес куда-нибудь и хранится ли он?
Он раскрывается Cloudflare, которая и так отдаёт эту страницу и уже имела его до того, как был сделан хоть один из этих запросов, — в этом и вся причина, по которой их можно делать, не спросив вас заранее, и рассуждение верно только потому, что точки принадлежат тому же оператору. Кроме этого — ничего. Поля ввода на странице нет, так что отправляться нечему; ни один адрес не сохраняется в браузере, не переносится между визитами и не вписывается в страницу; и никакая другая сторона не опрашивается ни на одном шаге.
Почему адреса нет в исходном коде страницы?
Потому что страница была записана в файл при сборке сайта, а вашего соединения тогда ещё не существовало. Каждая страница здесь заранее отрисовывается в плоский HTML, так что единственный адрес, который мог бы быть вписан в файл, — адрес сборочной машины, и поставить его туда было бы и неверно, и утечкой. Вместо этого файл несёт объяснение и три пустых подписанных места; браузер делает три запроса уже после отрисовки страницы и заполняет их. Так что пустое место в исходном коде — это работающий замысел, а не не выполнившийся сценарий.
Две строки показывают разные дата-центры и разные версии HTTP. Одна из них ошибочна?
Ни одна. Каждая строка описывает одно соединение, а два ваших семейства действительно выходят из сети разными маршрутами, так что могут доходить до разных площадок Cloudflare — это и наблюдалось на одной машине в один момент при проектировании инструмента: Лондон по IPv6 и Израиль по IPv4. Версии транспорта и протокола тоже решаются для каждого соединения отдельно. Ровно поэтому эти факты печатаются напротив каждой строки, а не один раз на страницу: единственной сводной строке пришлось бы выбрать один из двух ответов и подать его так, будто он описывает оба.
Я включил VPN, а адрес не изменился. Что произошло?
Сначала нажмите «Обновить»: показания снимаются при загрузке страницы и не живые, так что адрес, оставшийся на экране с того времени, когда VPN ещё не поднялся, — это просто более старый ответ. Если после обновления строка IPv4 меняется, а строка IPv6 нет, вот здесь стоит остановиться: многие клиенты VPN несут только IPv4 и оставляют IPv6 выходить прямо из вашего соединения, так что ваш настоящий адрес по-прежнему отдаётся каждому сайту IPv6, который вы открываете. Именно возможность видеть оба семейства сразу делает это заметным, а инструмент, показавший вам один адрес, сказать вам этого не смог бы.