Різниця між пінггінгом із та без http: //


46

Я намагаюся надіслати свій веб-сайт, http://www.example.com/і він вирішить невідому IP-адресу та вимкнеться.

PING http://www.example.com/ (198.105.254.228): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2

але коли я пінг, example.comце працює

Що я тут пропускаю?


32
Тут заплутано те, що ping навіть не може вирішити це як ім'я хоста, а тим більше відправляти невдалі пакети ICMP. На якій ОС / версії ви працюєте?
пухнастий

11
Прошу вибачення, але я проголосував за це через сукупність причин - новий користувач з одним питанням, що містить URL-адресу на їхньому веб-сайті з явно фальсифікованим результатом з PING. За всіма правами, це спроба залучити трафік до URL-адреси. Якщо ми не зможемо дізнатися, яка операційна система має версію PING, що 1) знає, що таке URL, і 2) ідентифікує номер icmp_seq для кожного тайм-ауту.
Світанок Бентон


25
Для тих , хто downvoted , тому що вони не знали , є DNS сервісів, угон невдалі Lookups, не знав pingі getaddrinfo()та друзі проходять через косі риси, не знали , що 56 data bytesє загальним по замовчуванням, і т.д.: Будь ласка , прийміть це як знак що ваші зусилля, щоб дізнатися більше про речі, перш ніж намагатися допомогти, будуть оцінені.
rakslice

5
@ Ƭᴇcʜιᴇ007 Результати ping справжні, я бачу точно такі ж дані, коли підпилюю недійсне ім'я хоста за допомогою TimeWarner Cable DNS на OS X.
Hunter Dolan

Відповіді:


108

Я намагаюся надіслати свій веб-сайт http://www.example.com/, і він вирішить невідому IP-адресу та вимкнеться.

PING http://www.example.com/ (198.105.254.228): 56 data bytes
Request timeout for icmp_seq 0

Аргументом ping є ім'я хоста (або IP-адреса).

Отже, все спрацює:

ping example.com
ping www.example.com
ping 127.0.0.1

З іншого боку,

ping http://www.example.com/

не працюватиме, оскільки http://www.example.com/ - це єдиний локатор ресурсів HTTP (URL), що не є дійсним іменем хоста (хоча частина його імені хоста).

URL-адреса HTTP складається з 4 частин:

  • Схема - завжди присутня
  • Ім'я хоста - завжди присутнє
  • Шлях або стовбур - завжди присутній, але іноді є недійсним
  • Параметри - необов’язкові

Ping, як правило, не розпізнає URL-адреси як дійсне ім'я хоста.

Примітки :

  • Не всі URL-адреси мають вказаний вище формат.

  • Повна URL-адреса складається із специфікатора схеми іменування, за яким слідує рядок, формат якого є функцією схеми іменування.

  • Формат URL-адреси визначений у специфікації IETF Уніфіковані локатори ресурсів (URL)


DNS Викрадення

Виняток із вищезазначеного може статися, якщо сервер DNS (який вирішує імена хостів на IP-адреси) налаштований для повернення дійсної IP-адреси, навіть якщо вказано недійсне ім'я хоста.

Це може статися, якщо провайдер викрадає ваші запити DNS.

З відповіді Чому ping має дозвіл на IP 198.105.254.228 для будь-якого випадкового імені хоста, який я ввожу? від Michael Hampton :

Вони намагаються бути "корисними", перенаправляючи запити на неіснуючі домени до білої служби етикетки, яка забезпечує результати пошуку та рекламу, від якої всі, окрім вас, отримують скорочення доходу.

На щастя, у них є сторінка налаштувань, на якій ви можете нібито її вимкнути.


33

Коли ви запускаєте команду ping із рядком, який не є IP-адресою, спочатку потрібно вирішити IP-адресу хоста, який ви намагаєтеся ping.

Під час запуску:

$ ping example.com

DNS-сервер повертає IP-адресу сервера, на якому розміщується веб-сайт.

Однак при встановленні префіксу протоколу та шляху до створення стандартної URL-адреси http, яка надсилається на сервер DNS для вирішення.

Таким чином, замість того, щоб DNS-сервер знаходив запис, example.comвін шукає запис, http://example.com/який не є дійсним ім'ям хоста.

Багато DNS-серверів не повернуться ні з чим. У цьому випадку команда ping просто помилиться з помилкою роздільної здатності DNS.

Однак ваш DNS-сервер повертає IP-адресу 123.456.789.000. Ця адреса представляє собою послугу пропозицій Time Warner Cable, щоб допомогти користувачам, які неправильно ввели URL-адресу у своєму браузері.

Але команда ping розуміє це буквально і вважає, що ім'я хоста http://example.com/(яке не є дійсним іменем хоста) вирішує адресу 123.456.789.000.

Причина, коли команда ping закінчується після цього, полягає в тому, що 123.456.789.000вона не відповідає на запити ICMP.


5
Варто зазначити, що фактичний домен / ip редагувався ботом спільноти. "123.456.789.000" спочатку був IP-адресою, яку викинув DNS TWC при спробі вирішити неіснуюче ім'я хоста.
Мисливець Долан

1
Бот не знає, як зробити автоматичні зміни; Я б сказав, що це редакція, яку запропонував анонімний користувач.
Лео Лам

Редагування було запропоновано анонімним користувачем та затверджено мною та іншим користувачем.
DavidPostill

21

Http: // означає протокол гіперпередачі тексту, протокол, який використовується для доступу до веб-сторінок. Пінгінг сервера не використовує HTTP, а натомість складається з повідомлення ICMP (протокол повідомлень управління Інтернет), тому http: // не має сенсу в цьому контексті.


Я б сказав, що це не очевидно для того, хто ще не знає, але тепер, коли ви знаєте інформацію з відповіді KJ4TIP, подивіться на вихід: Request timeout for icmp_seq 0Ви можете побачити ICMP там, що означає послідовність ICMP 0, 1, 2 ...
Тайлер Колліер

0

Чому б ти все-таки використовував "пінг". Це не спрацює, якщо брандмауер перешкоджає "пінг" трафіку.

На мою думку, якщо ви збираєтеся протестувати веб-сервер, тоді краще використовувати "telnet", тоді ви можете протестувати хост і порт, який він повинен слухати.

наприклад: Щоб перевірити веб-сервер telnet www.mywebserver.com 80 на порожньому екрані, введіть "get", а потім "enter", і вам слід отримати купу відповіді http з веб-сервера. ( напр .: HTTP / 1.1 400 Поганий запит ... )

Це говорить мені, що сервер не тільки "вгору", але він також прослуховує і реагує на порт 80. Я також очікував, що будь-які брандмауери перейдуть порт 80 на мій веб-сервер)

Так само 'telnet' також працює для тестування поштових серверів, ftp та майже нічого іншого.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.