Вопрос или проблема
Я хотел узнать IP-адрес веб-сайта. Один из способов — это выполнить ping веб-сайта. Например, если я хочу узнать IP-адрес google.com
, я могу выполнить ping в командной строке.
Pinging google.com [74.125.236.195] с 32 байтами данных:
Ответ от 74.125.236.195: байты=32 время=36мс TTL=49
Ответ от 74.125.236.195: байты=32 время=35мс TTL=49
Ответ от 74.125.236.195: байты=32 время=64мс TTL=49
Ответ от 74.125.236.195: байты=32 время=47мс TTL=49
Таким образом, 74.125.236.195
— это IP-адрес Google. Но если я хочу узнать IP-адрес superuser.com
и попробую сделать то же самое, мне выдаст IP-адрес 198.252.206.16. Но если я введу этот IP-адрес в адресной строке браузера, он не перенаправит меня на superuser.com.
Может кто-нибудь сказать, как получить IP-адрес?
Ваше начальное предположение заключается в том, что все веб-сайты можно открыть напрямую по их IP-адресу. Это не так.
В большинстве случаев (я бы сказал, в большинстве случаев) веб-сайт, который отображается по IP-адресу, зависит от имени веб-сайта, который вы запрашиваете. То есть, если вы запрашиваете superuser.com, вам сначала необходимо разрешить это имя в IP-адрес, а затем сделать запрос к IP-адресу для конкретной веб-страницы. Это выглядит так:
GET / HTTP/1.1
Host: superuser.com:80
Первая часть говорит: “получите первую страницу сайта”, а вторая — “для веб-сайта superuser.com”.
Вот почему один веб-сервер может размещать несколько веб-сайтов, используя один IP-адрес. В случае сайтов Stack Exchange любой из них может находиться на каждом из их серверов, и вы получите тот, который запрашиваете. Если вы просто введете IP-адрес, вы не получите никакой из них, потому что вы не говорите веб-серверу, какой из многочисленных веб-сайтов вы ищете. В этих случаях у него может быть определенный “дефолтный” веб-сайт или просто возвращаться ошибка.
Если вы пытаетесь обойти проблему с вашим DNS-поставщиком, то одним из вариантов является изменение файла hosts
, чтобы вы сами разрешали адреса, а не позволяли этому делать сторонней организации.
Таким образом, например, если вы редактируете
/etc/hosts (linux)
c:\windows\system32\drivers\etc\hosts (windows)
Вы можете ввести
74.125.236.195 superuser.com
Таким образом, если вы наберете superuser.com в вашем браузере, он посмотрит в файл hosts, разрешит IP-адрес, но затем все равно передаст имя веб-сайта серверу, к которому подключается.
Чтобы получить IP-адрес веб-сайта, наилучший способ — использовать команду nslookup
. Например:
nslookup superuser.com 8.8.8.8
Сервер: google-public-dns-a.google.com
Адрес: 8.8.8.8
Неавторитетный ответ:
Имя: superuser.com
Адрес: 198.252.206.16
Если вам интересно, почему вы не можете посетить superuser напрямую по IP-адресу (198.252.206.16), это связано с настройками веб-сервера.
Здесь сайт superuser запрещает посещение пользователей через IP-адрес. Вероятно, это потому, что IP-адрес привязан к другим веб-сайтам (например, stackoverflow.com).
Если вы используете инструмент “обратного поиска IP”, вы можете найти его привязанные сайты.
Еще одна проверка подтверждает, что я прав:
nslookup stackoverflow.com 8.8.8.8
Сервер: google-public-dns-a.google.com
Адрес: 8.8.8.8
Неавторитетный ответ:
Имя: stackoverflow.com
Адрес: 198.252.206.16
У Firefox есть отличный аддон, который показывает IP-адрес любого сайта, который вы посещаете, который вы можете получить здесь.
Расширение Flagfox для Firefox дает вам IP-адрес текущего веб-сайта, а также множество другой информации о сайте (включая геолокационную карту местоположения сервера). В выпадающем меню аддона вы можете скопировать IP-адрес в буфер обмена при необходимости.
Ответ или решение
Чтобы узнать IP-адрес веб-сайта, существует несколько методов, которые могут быть использованы. Я перечислю наиболее распространённые из них, а также объясню, почему вы иногда не можете напрямую перейти на сайт, используя только IP-адрес.
1. Команда ping
Один из простых способов узнать IP-адрес сайта — использовать команду ping
в командной строке. Например, для получения IP-адреса google.com
можно выполнить следующую команду:
ping google.com
В результате вы получите ответ, в котором будет указан IP-адрес, например [74.125.236.195]
.
2. Использование nslookup
Команда nslookup
предоставляет более детализированную информацию о DNS. Например, чтобы узнать IP-адрес для superuser.com
, можно использовать:
nslookup superuser.com
Это даст вам IP-адрес, например 198.252.206.16
.
3. Почему нельзя получить доступ к сайту по IP-адресу
Часто бывает так, что вы не можете зайти на сайт, используя его IP-адрес, так как многие веб-сервера используют виртуальные хосты. Это значит, что один и тот же IP-адрес может обслуживать несколько сайтов. Когда вы обращаетесь к конкретному IP-адресу, сервер не всегда знает, какой сайт вы хотите посетить, если вы не указали его в запросе.
Вот как работает запрос:
GET / HTTP/1.1
Host: superuser.com
В этом запросе указано, что вы хотите получить страницу для superuser.com
. Без этой информации сервер либо показывает "умолчательный" сайт, либо возвращает ошибку.
4. Изменение файла hosts
Если вы хотите обойти проблемы с DNS, вы можете внести изменения в файл hosts
вашего компьютера. Например:
- Для Linux:
/etc/hosts
- Для Windows:
C:\Windows\System32\drivers\etc\hosts
Вы можете добавить строку:
198.252.206.16 superuser.com
Таким образом, когда вы вводите superuser.com
в браузере, ваш компьютер будет обращаться к указанному IP-адресу, но по-прежнему будет использовать имя хоста в запросе.
5. Использование браузерных расширений
Существуют расширения для браузеров, которые могут помочь вам получить IP-адрес посещаемого сайта. Например, в Firefox есть аддон ShowIP
, который показывает IP-адрес любого сайта, который вы посещаете. Также можно использовать аддон Flagfox
, который предоставляет дополнительные сведения о сайте, включая геолокацию сервера.
6. Советы по проверке
Если вы хотите подтвердить, какие сайты обслуживаются на конкретном IP-адресе, вы можете воспользоваться инструментами обратного поиска IP-адреса.
Заключение
Получить IP-адрес веб-сайта можно несколькими способами. Однако, учитывая архитектуру современных веб-серверов, прямой доступ к сайтам по их IP-адресам может быть невозможен из-за правил конфигурации серверов. Всегда используйте указание имени сайта в запросах, чтобы гарантировать успешный доступ.