IPv4 주소 변환기
IP 주소를 10진수, 2진수, 16진수 또는 IPv6 표현으로 변환합니다.
IPv4 주소 하나를 10진수 정수, 16진수, 2진수, IPv6 IPv4 매핑 표기로 바꿔 보여 줍니다.
사용 순서
- IPv4 주소를 입력합니다. 입력하는 동안 결과가 바로 바뀝니다.
- 10진수, 16진수, 2진수 값을 확인합니다. 16진수는 대문자로 표시됩니다.
- IPv6 행과 짧은 IPv6 행 중 설정에 필요한 표기를 골라 복사합니다.
- 형식이 잘못되면 결과 칸이 비고 오류 문구가 표시됩니다.
예시
192.168.1.1을 입력하면 10진수 3232235777, 16진수 C0A80101, 2진수 11000000101010000000000100000001, 짧은 IPv6 표기 ::ffff:c0a8:0101이 나옵니다.
한계
마스크(/24)나 여러 주소를 한 번에 처리하지 않습니다. 앞자리가 0인 옥텟(예: 192.168.1.01)은 형식 오류로 거부됩니다. 10진수 결과는 32비트 범위 안의 정수이며, IPv6 행은 IPv4 매핑 표기만 만들고 다른 IPv6 변환 방식은 제공하지 않습니다.
보안 주의
IPv6 행의 값은 IPv4 주소를 IPv6 형식으로 감싼 매핑 주소입니다. 실제 IPv6 호스트에 할당되는 주소가 아니므로, 설정 파일에 붙이기 전에 대상 시스템이 이 표기를 받는지 먼저 확인하세요.
배경 지식
컴퓨터는 IPv4 주소를 32비트 정수로 저장합니다. 점으로 나뉜 각 옥텟은 0부터 255까지 8비트 값이고, 왼쪽 옥텟일수록 256의 세제곱, 제곱, 배수 가중치를 가집니다. 그래서 192.168.1.1은 192 × 256³ + 168 × 256² + 1 × 256 + 1을 계산한 3232235777이 됩니다.
16진수 한 자리는 4비트를 나타내므로, 옥텟 하나는 정확히 16진수 두 자리로 표현됩니다. C0 A8 01 01처럼 나누어 읽으면 패킷 덤프나 메모리 값에서 주소를 알아보기 쉽습니다. 2진수는 마스크 계산이나 비트 단위 비교를 직접 확인할 때 쓰입니다. 예를 들어 IPv4 주소 10.0.0.1은 0A 00 00 01로 표현되어, 16진수만 보고도 대략적인 대역을 가늠할 수 있습니다.
IPv6는 IPv4 주소를 128비트 주소 공간에 넣는 표기를 정해 두었습니다. ::ffff:0:0/96 블록 안에 IPv4 주소를 붙인 것이 IPv4 매핑 주소입니다. 듀얼 스택 소켓이 IPv4 연결을 IPv6 API로 다룰 때 로그에 이런 주소가 나타나며, 이때는 뒤의 32비트를 원래 IPv4 주소로 읽으면 됩니다.
자주 묻는 질문
10진수 정수 값은 어디에 쓰나요?
데이터베이스에 IP를 숫자로 저장하면 범위 검색과 대소 비교가 빨라집니다. IP 범위 테이블을 정렬해 이진 탐색으로 찾는 방식이 대표적입니다. 화면에 보일 때는 다시 점 표기로 바꿔 쓰면 됩니다.
앞에 0이 붙은 주소는 왜 거부되나요?
일부 프로그램은 0으로 시작하는 옥텟을 8진수로 해석해서, 같은 문자열이 다른 주소가 됩니다. 이 도구는 이런 모호함을 피하려고 앞자리 0을 허용하지 않습니다. 설정에 옮길 때는 앞의 0을 지우고 쓰세요.
IPv6 짧은 표기의 ::ffff:는 무엇을 뜻하나요?
0으로 이루어진 연속 블록을 ::로 줄여 쓴 표기입니다. ::ffff:c0a8:0101은 0000:0000:0000:0000:0000:ffff:c0a8:0101과 같은 주소입니다. ::는 한 주소에 한 번만 쓸 수 있습니다.