127.1 Ping을 할 수있는 이유는 무엇입니까?


11

IPv6을 사용하면 연속 0을 생략 할 수 있습니다. 그러나 IPv4는 어떻습니까? Wikipedia 및 RFC 791 – 인터넷 프로토콜을 포함하여 인터넷에서 이에 대한 언급을 찾지 못했습니다 . 이 문서 는 IPv4 주소에서 "리딩 제로를 생략 할 수 있습니다"라는 용어를 제안합니다 ( '생략'이라는 용어 검색). 충분히 구체적이지 않습니다.

이 쉘 세션을 확인하십시오.

[~]$ ping -c 1 127.1
PING 127.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.040 ms

--- 127.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.040/0.040/0.040/0.000 ms
[~]$ ping -c 1 127.0.1
PING 127.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.044 ms

--- 127.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.044/0.044/0.044/0.000 ms
[~]$ ssh 127.1 :
The authenticity of host '127.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is 04:48:fa:f2:ef:95:7c:35:46:39:2e:d3:89:dd:cd:87.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.1' (ECDSA) to the list of known hosts.
alex@127.1's password: 

분명히 ping과 ssh는 127.1과 127.0.1이 127.0.0.1과 동일하다는 것을 이해합니다. 이것은 어디에 지정되어 있습니까?


7
스택 오버플로 게시물에 링크 된 이 매뉴얼 페이지 가 바로 골목길에 있습니다.
nerdwaller

1
그것은 고대의 표기법 스타일이지만, 그렇습니다 : 작동합니다 :-)
Sander Steffann

1
@nerdwaller : 답변으로 게시하십시오. (보너스 포인트 당신은 알아낼 이유 경우 ping 0.0.0.0ping 0... 같은 방식으로 작동)
user1686

답변:


14

약 1 년 전에 스택 오버플로 게시물 이 있습니다 ( 이 게시물 ).

주된 이유는 inet_aton()( man page )가 8 진수를 2 진 주소로 변환하는 방법 입니다.

abcd

네 개의 숫자 부분 각각은 주소의 바이트를 지정합니다. 이진 주소를 생성하기 위해 바이트가 왼쪽에서 오른쪽으로 할당됩니다.

알파벳

부분 a와 b는 이진 주소의 처음 2 바이트를 지정합니다. 파트 c는 이진 주소의 가장 오른쪽 2 바이트를 정의하는 16 비트 값으로 해석됩니다. 이 표기법은 (변경되지 않은) 클래스 B 네트워크 주소를 지정하는 데 적합합니다.

ab

파트 a는 이진 주소의 첫 번째 바이트를 지정합니다. 파트 b는 이진 주소의 가장 오른쪽 3 바이트를 정의하는 24 비트 값으로 해석됩니다. 이 표기법은 (변경되지 않은) 클래스 C 네트워크 주소를 지정하는 데 적합합니다.

값 a는 바이트 재 배열없이 이진 주소에 직접 저장되는 32 비트 값으로 해석됩니다.

이것은 POSIX.anything에 의해 정의되지는 않지만 꽤 광범위하게 사용 가능합니다.


1
또한 스택 오버플로에서 링크 한 게시물도 확인했습니다. 다른 수의 시스템을 어떻게 사용할 수 있는지에 대한 훌륭한 통찰력을 가지고있었습니다. @grawity Wikipedia 는 0.0.0.0/8이 현재 네트워크라고 말합니다. 0.0.0.0/32가 현재 호스트 여야하며 ping은 / 32 "networks"만 필요하다고 가정합니다. 그래도 명시 적 참조를 찾지 못했습니다.
Alexandre de Verteuil

2
@AlexandredeVerteuil : ping은 네트워크가 아닌 호스트를 기대 합니다 . 그래서 IPv4의 경우 / 32입니다.
user1686

3

그것은 고전적인 연설의 옛날의 유물입니다. 127.1네트워크 127, 호스트를 의미합니다 1. (그리고는, 그래, 127.257네트워크가 있기 때문에 법적으로 127256 개 이상의 호스트를 가질 수 있습니다.


127.257은 특히 127.0.1.1을 의미하며, Windows 8.0에서 작동했던 이전 KMS 서버 활성화 기에서 실제로 볼 수있는 주소
Paul Stelian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.