Próbuję wysłać polecenie ping do mojej witryny, http://www.example.com/
która rozwiązuje problem z nieznanym adresem IP i upłynął limit czasu.
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
ale kiedy pinguję, example.com
to działa
Czego tu brakuje?
ping
igetaddrinfo()
i przyjaciele przechodzą przez ukośniki, nie wiedział, że56 data bytes
jest to wspólny domyślną itp .: proszę wziąć to jako znak docenione zostaną twoje wysiłki, aby dowiedzieć się więcej na ten temat, zanim spróbujesz pomóc.Odpowiedzi:
Próbuję wysłać polecenie ping do mojej witryny http://www.example.com/, która rozwiązuje problem z nieznanym adresem IP i upłynął limit czasu.
Argumentem pingowanym jest nazwa hosta (lub adres IP).
Więc następujące będą działać:
Z drugiej strony,
nie będzie działać, ponieważ http://www.example.com/ to URL Uniform Resource Locator (URL), a nie poprawna nazwa hosta (chociaż jego część to nazwa hosta).
Adres URL HTTP składa się z 4 części:
Ping zwykle nie rozpoznaje adresów URL jako prawidłowej docelowej nazwy hosta.
Uwagi :
Nie wszystkie adresy URL mają format wspomniany powyżej.
Pełny adres URL składa się ze specyfikatora schematu nazewnictwa, po którym następuje ciąg znaków, którego format jest funkcją schematu nazewnictwa.
Format adresu URL jest zdefiniowany w specyfikacji IETF Uniform Resource Locators (URL)
Przejęcie DNS
Wyjątek od powyższego może się zdarzyć, jeśli serwer DNS (który przekształca nazwy hostów na adresy IP) jest skonfigurowany do zwracania prawidłowego adresu IP, nawet jeśli podano niepoprawną nazwę hosta.
Może się to zdarzyć, jeśli ISP przejmuje kontrolę nad zapytaniami DNS.
Z odpowiedzi Dlaczego ping zmienia się na IP 198.105.254.228 dla dowolnej losowej nazwy hosta, którą wpisuję? autor: Michael Hampton :
źródło
Po uruchomieniu polecenia ping z ciągiem, który nie jest adresem IP, najpierw musi rozwiązać adres IP hosta, który próbujesz pingować.
Kiedy biegniesz:
$ ping example.com
Serwer DNS zwraca adres IP serwera, który hostuje witrynę.
Jednak po prefiksie protokołu i ścieżki do utworzenia standardowego adresu URL http, który jest wysyłany do serwera DNS w celu rozwiązania.
Zamiast więc serwera DNS znajdującego rekord
example.com
, szuka on rekordu,http://example.com/
który nie jest prawidłową nazwą hosta.Wiele serwerów DNS powróci bez niczego. W takim przypadku polecenie ping po prostu wyskoczy z błędem rozpoznawania DNS.
Jednak Twój serwer DNS zwraca adres IP
123.456.789.000
. Adres wydaje się być usługą sugerowaną przez Time Warner Cable, aby pomóc użytkownikom, którzy źle wpisali adres URL w przeglądarce.Ale polecenie ping bierze to dosłownie i uważa, że
http://example.com/
nazwa hosta (która nie jest prawidłową nazwą hosta) rozwiązuje adres123.456.789.000
.Przyczyną przekroczenia limitu czasu polecenia ping jest
123.456.789.000
brak odpowiedzi na żądania ICMP.źródło
Http: // oznacza protokół przesyłania hipertekstu, protokół używany do uzyskiwania dostępu do stron internetowych. Pingowanie serwera nie korzysta z HTTP, ale zamiast tego składa się z komunikatu ICMP (protokół wiadomości kontroli Internetu), więc http: // nie ma sensu w tym kontekście.
źródło
Request timeout for icmp_seq 0
Możesz tam zobaczyć ICMP, co oznacza sekwencję ICMP 0, 1, 2 ...Dlaczego i tak używałbyś „ping”. Nie zadziała, jeśli zapora sieciowa blokuje ruch „ping”.
Moim zdaniem, jeśli zamierzasz przetestować serwer WWW, lepiej użyć „telnet”, to możesz przetestować hosta i port, na którym powinien nasłuchiwać.
np .: Aby przetestować serwer internetowy telnet www.mywebserver.com 80 na pustym ekranie, wpisz „get”, a następnie „enter”. Powinieneś otrzymać stos odpowiedzi HTTP z serwera. ( np .: HTTP / 1.1 400 Bad Request ... )
Mówi mi to, że serwer jest nie tylko „włączony”, ale także nasłuchuje i odpowiada na porcie 80. (Spodziewałbym się również, że wszelkie zapory ogniowe przepuszczą port 80 na mój serwer)
Podobnie „telnet” działa również w celu testowania serwerów pocztowych, ftp i wszystkiego innego.
źródło