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
여기서 혼동되는 것은 핑이이를 호스트 이름으로 해석 할 수 없어서 실패한 ICMP 패킷을 전송하는 것보다 훨씬 적다는 것입니다. 어떤 OS / 버전을 사용하고 있습니까?
솜털 같은

11
죄송하지만 PING의 결과가 위조 된 웹 사이트 URL이 포함 된 한 가지 질문이있는 새로운 사용자에게는 여러 가지 이유로 인해이 투표에 참여했습니다. 모든 권리에 의해, 그것은 URL로 트래픽을 유도하려는 시도입니다. 어떤 운영 체제에 1) URL이 무엇인지, 2) 각 시간 초과에 대한 icmp_seq 번호를 식별하는 PING 버전이있는 운영 체제를 찾을 수 없으면.
Dawn Benton


25
실패한 조회를 납치 DNS 서비스가 그들이 몰라서을 downvoted 사람들에게, 몰랐 pinggetaddrinfo()친구들은 몰랐 슬래시를 통과 56 data bytes공통 기본, 등 : 표시로이 보시기 바랍니다있다 도움을주기 전에 더 많은 것을 배우려는 노력에 감사드립니다.
rakslice 2016 년

5
@ Ƭᴇcʜιᴇ007 핑 결과는 실제입니다. OS X에서 TimeWarner 케이블 DNS를 사용하여 유효하지 않은 호스트 이름을 핑 (ping) 할 때와 동일한 결과를 얻습니다.
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 (Uniform Resource Locator) 이므로 작동 하지 않습니다 (일부는 호스트 이름 임).

HTTP URL은 4 가지 부분으로 구성됩니다.

  • 구성표 — 항상 존재
  • 호스트 이름 — 항상 존재
  • 경로 또는 줄기 — 항상 존재하지만 때로는 null
  • 매개 변수 — 선택 사항

Ping은 일반적으로 URL을 유효한 대상 호스트 이름으로 인식하지 않습니다.

참고 사항 :

  • 모든 URL이 위에서 언급 한 형식을 갖는 것은 아닙니다.

  • 완전한 URL은 이름 지정 체계 지정자와 그 뒤에 형식이 이름 지정 체계의 함수 인 문자열로 구성됩니다.

  • URL 형식은 IETF 사양 URL (Uniform Resource Locator )에 정의되어 있습니다.


DNS 도용

호스트 이름을 IP 주소로 확인하는 DNS 서버가 유효하지 않은 호스트 이름을 제공하더라도 유효한 IP 주소를 반환하도록 구성된 경우 위의 예외가 발생할 수 있습니다.

ISP가 DNS 쿼리를 가로채는 경우에 발생할 수 있습니다.

대답에서 내가 입력하는 임의의 호스트 이름에 대해 ping이 IP 198.105.254.228로 해석되는 이유는 무엇입니까? 에 의해 마이클 햄프 턴 :

그들은 존재하지 않는 도메인에 대한 요청을 검색 결과와 광고를 제공 하는 화이트 라벨 서비스 로 리디렉션하여 "유용한"노력을 기울이고 있습니다.

다행히도 그들은 당신이 그것을 해제 할 수 있는 환경 설정 페이지 가 있습니다.


33

IP 주소가 아닌 문자열을 사용하여 ping 명령을 실행하면 먼저 핑하려는 호스트의 IP 주소를 확인해야합니다.

실행할 때 :

$ ping example.com

DNS 서버는 웹 사이트를 호스팅하는 서버의 IP 주소를 반환합니다.

그러나 프로토콜과 경로를 접두사로 사용하면 해결 될 DNS 서버로 모두 전송되는 표준 http URL을 만들 수 있습니다.

따라서 DNS 서버가 레코드를 찾는 대신 유효한 호스트 이름이 아닌 example.com레코드 http://example.com/를 찾습니다 .

많은 DNS 서버가 아무 것도 반환하지 않습니다. 이 경우 ping 명령은 DNS 확인 오류와 함께 오류가 발생합니다.

그러나 DNS 서버는 IP 주소를 반환합니다 123.456.789.000. 이 주소는 브라우저에서 URL을 잘못 입력 한 사용자를 돕기 위해 Time Warner Cable의 제안 서비스 인 것으로 보입니다.

그러나 ping 명령은 이것을 문자 그대로 받아들이고 호스트 이름 http://example.com/(유효한 호스트 이름이 아님)이 주소로 해석 된다고 생각 합니다 123.456.789.000.

그 후 ping 명령이 시간 초과되는 이유는 123.456.789.000ICMP 요청에 응답하지 않기 때문 입니다.


5
실제 봇 / ip가 커뮤니티 봇에 의해 편집되었다는 것을 지적 할 가치가 있습니다. "123.456.789.000"은 원래 존재하지 않는 호스트 이름을 해결하려고 시도 할 때 TWC의 DNS가 버린 IP 주소입니다.
헌터 돌란

1
봇은 자동 편집 방법을 모릅니다. 익명의 사용자가 제안한 편집이라고 말합니다.
Léo Lam

편집은 익명의 사용자가 제안했으며 본인과 다른 사용자가 승인했습니다.
DavidPostill

21

http : //는 웹 페이지에 액세스하는 데 사용되는 프로토콜 인 하이퍼 텍스트 전송 프로토콜을 나타냅니다. 핑 서버는 HTTP를 사용하지 않고 대신 ICMP (Internet Control Message Protocol) 메시지로 구성되므로 http : //는이 컨텍스트에서 의미가 없습니다.


나는 아직 모르는 사람에게는 분명하지 않지만, 이제 KJ4TIP의 답변 정보를 알고 출력을보십시오 .ICMP Request timeout for icmp_seq 0시퀀스 0, 1, 2를 의미하는 ICMP를 볼 수 있습니다 ...
Tyler Collier

0

어쨌든 'ping'을 사용하는 이유는 무엇입니까? 'ping'트래픽을 차단하는 방식으로 방화벽이 있으면 작동하지 않습니다.

내 의견으로는 웹 서버를 테스트하려는 경우 'telnet'을 사용하는 것이 더 좋다면 호스트와 수신 대기하는 포트를 테스트 할 수 있습니다.

예 : 빈 화면에서 웹 서버 telnet www.mywebserver.com 80 을 테스트하려면 'get'을 입력 한 다음 'enter'를 입력하면 웹 서버에서 http 응답을 다시 받아야합니다. ( 예 : HTTP / 1.1 400 잘못된 요청 ... )

이것은 서버가 '업'일뿐만 아니라 포트 80에서 수신 및 응답하고 있음을 알려줍니다 (방화벽이 포트 80을 내 웹 서버로 통과시킬 것으로 기대합니다)

마찬가지로 'telnet'은 메일 서버, ftp 및 기타 다른 것들을 테스트하는 데에도 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.