programing

0.0.0.0이 유효한 IP 주소입니까?

javaba 2021. 1. 15. 19:09
반응형

0.0.0.0이 유효한 IP 주소입니까?


0.0.0.0이 유효한 IP 주소입니까? 내 프로그램이 주소를 사용하지 않는다는 표시로 저장할 수 있기를 원하지만 실제로 유효한 경우 작동하지 않습니다.


그건 유효한 것이 포함 통해 255 내지 0 내의 네 개의 옥텟으로 각각 포함 진대. 그러나 실제 IP 주소로는 사용할 수 없습니다 .

RFC1700 (a)에 따르면 0.0.0.0/8( 0.<anything>.<anything>.<anything>)는 원본 주소로만 예약되어 있습니다. 이 주소를 가지고있는 것처럼 보일 수 있지만 일반적으로 주소가 할당되지 않았기 때문입니다 (예 : DHCP에 의해).

IPv4에 대한 Wikipedia 항목 도 참조하십시오 .


(a) 이 RFC는 이제 구식으로 간주되지만 주어진 동작 측면에서 여전히 정확합니다. 대체 https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml 은 여전히 ​​0.0.0.0 주소 사용을 자세히 설명하는 동일한 텍스트를 가지고 있습니다.


예, IP 주소 이지만 예약되어 있습니다.

0.0.0.0/8- 이 블록의 주소 는 "이"네트워크의 소스 호스트를 참조합니다. 주소 0.0.0.0/32는이 네트워크에서이 호스트의 소스 주소로 사용될 수 있습니다. 0.0.0.0/8 내의 다른 주소는이 네트워크의 지정된 호스트를 참조하는 데 사용될 수 있습니다.


0.0.0.0모든 IPv4의 인터페이스를 결합하는 데 사용됩니다. 그래서 그것은 127.0.0.1.


여기에서 OP가 묻는 질문을 살펴 보겠습니다.

0.0.0.0이 유효한 IP 주소입니까?

예. 이것은 기술적으로 유효한 IP 주소이며 다른 답변은 다양한 용도에 대해 설명합니다 ( 여기에 위키 백과 링크 를 다시 게시하지 않을 것입니다 ... 또는 내가있을 수 있습니다).

따라서 의 paxdiablo의 답변 이 가장 정확 하다고 생각 하지만 질문의 맥락도 살펴 보겠습니다.

내 프로그램이 주소를 사용하지 않는다는 표시로 저장할 수 있기를 원하지만 실제로 유효한 경우 작동하지 않습니다.

이것은 전적으로 사용 사례에 따라 다릅니다. 이것이 프로그래머 포럼이라는 점을 감안할 때 그 관점을 고려해 보겠습니다.

소프트웨어가 실제 인터넷 주소 (서버 위치, 웹 사이트 방문자, 복제 / 미러 또는 백업 사이트, 웹 서비스 또는 데이터베이스 서버 등)를 저장하는 경우 이는 완벽하게 유효합니다. 인터넷상의 어떤 기계도이 주소가 할당되지 않으며 유효한 연결로 확인되지도 않습니다.

반면에 방화벽이나 라우터 펌웨어를 작성하는 경우이 주소는 특별한 의미를 갖습니다. 기본 경로, 모든 IP 소스 / 대상 수락, 모든 IP 소스 / 대상 차단, 폴트 러 (fall-trough) 캐치 올 등 다른 모든 사람이 설명합니다. 그러나이 수준에서 코딩하는 경우 처음에이 질문을 할 필요가 없도록 네트워크 프로토콜에 대해 충분히 이해해야합니다.

따라서이 질문을 보는 대부분의 사람들이 첫 번째 범주에 속한다고 가정 하고 실제 값을 사용할 수없는 이유가있는 경우 이것이 null, 비어 있거나 누락 된 IP 주소를 저장하는 완벽하게 유효한 방법 이라고 제안합니다. null. 유효성 검사를 무시하고 소프트웨어가이 IP 주소에 연결을 시도하더라도 단순히 연결할 수 없습니다.


기본 경로 주소 로 예약되어 있습니다.

주소가 할당되지 않은 경우 ipconfig를 통해 확인하는 것이 일반적입니다.


응용 프로그램에서 IP 주소가 없음을 나타 내기 위해 사용할 수 있습니다. Microsoft는 컴퓨터에 IP 주소가 없을 때 0.0.0.0도 사용합니다.

위에서 설명한 "유효한"시나리오는 응용 프로그램과 관련이없는 특정 시나리오에 따라 다릅니다.


다른 답변에서 다루었 듯이 0.0.0.0은 합법적이며 일부 목적으로 유효한 IP 주소입니다.

범위의 모든 값이 유효한 값이면 정의하려는 플래그 항목은 다른 곳에서 가져와야합니다. 그렇지 않으면 플래그의 의미로 합법적 인 값을 오버로드하게되며, 오버로드 된 값을 사용할 때 합법적 인 값인지 플래그 의미인지 여부를 결정하는 것은 100 % 불가능합니다. 이것은 비용이 많이 드는 노력이 될 수있는 리팩터링으로 해결해야하는 버그로 이어질 것입니다.

합법적 인 값의 과부하는 항상 발생하며 IP 주소와 MAC 주소 (예, 00 : 00 : 00 : 00 : 00 : 00은 합법적이며 할당 됨)이 가장 일반적인 희생자 중 일부입니다.

우연히도 저는 프레임 길이가 약 40 바이트로 제한되는 시스템 (이더넷 / IP 기반이 아님)에서 작업하고 있습니다. 바이트는 0-255 바이트의 길이를 나타낼 수 있고 최대 길이는 40 바이트이므로 플래그 항목을 나타 내기 위해 사용되지 않는 일명 비합법적 값 (252-255)을 사용할 수 있습니다. 이러한 대역 내 플래그는 과부하가 없기 때문에 괜찮습니다.


모든 의도와 목적을 위해 그렇습니다. 마침표로 구분 된 4 개의 숫자는 각각 0-255 범위의 값을 가지므로 0.0.0.0은 기술적으로 유효합니다.

나는 실제로 그 IP를 가진 사람이 세상에 없을 것이라고 생각합니다.

편집 : 좋아, 기본 경로 용으로 예약되어 있지만 여전히 유효합니다.


당연하지. 그러나 네트워크의 단일 호스트에는 유효하지 않습니다. 로컬 네트워크의 브로드 캐스트 범위에 있습니다. 여기에서 읽으십시오 : http://tools.ietf.org/html/rfc1700


Network Whois 쿼리를 수행하면 매우 유용한 출력을 생성 할 수도 있습니다.
예 :
http://whois.arin.net/rest/nets;q=0.0.0.0?showDetails=true

설명 : 0.0.0.0 주소는 컴퓨터가 사용해야하는 IP 주소를 학습 할 때 보내는 패킷의 주소로만 사용할 수 있습니다. 목적지 주소로 사용되지 않습니다. "0"으로 시작하는 주소. 때로는 직접 연결된 장치로의 방송에 사용됩니다.

참조 URL : https://stackoverflow.com/questions/3655723/is-0-0-0-0-a-valid-ip-address

반응형