IPv4 주소 변환기

IPv4 주소를 정수·16진수·2진수 표현으로 상호 변환합니다.

입력 형식 자동 감지 — 점 표기 · 10진수 정수 · 16진수 · 2진수 · 8진수 모두 인식합니다

점 표기 (Dotted quad)
10진수 정수 (32비트)
16진수
8진수 (옥텟별)
2진수 (옥텟별)
2진수 (32비트 연속)
IPv4-mapped IPv6
리버스 DNS (PTR)

특수 용도 IPv4 대역

항목을 클릭하면 해당 대역의 예시 주소가 입력됩니다.

IPv4 주소 변환기란?

IPv4 주소를 10진수 정수, 16진수, 2진수 등 다른 형식으로 변환해야 할 때가 있으신가요? 데이터베이스에 IP 주소를 효율적으로 저장하거나, 네트워크 로그를 분석하거나, C/C++ 같은 저수준 언어에서 IP를 다룰 때 필요한 작업입니다. 툴즈25시의 IPv4 주소 변환기는 이 모든 변환을 즉시 처리합니다. '192.168.0.1' 같은 점 표기 주소는 물론, 정수(3232235521), 16진수(0xC0A80001), 2진수 등 어떤 형식을 입력해도 자동으로 감지하고 양방향으로 변환합니다. 변환 결과와 함께 해당 IP의 클래스(A/B/C), 용도(공인/사설/루프백 등), 옥텟별 분석 정보까지 한눈에 보여주므로 네트워크 학습 및 분석용으로도 유용합니다. 회원가입이나 설치 없이 무료이며, 모든 계산은 사용자의 브라우저 안에서만 이루어지므로 입력하신 IP 주소가 서버로 전송되지 않아 안심하고 사용할 수 있습니다.

사용 방법

  1. 입력 칸에 변환하고 싶은 값을 붙여넣습니다. '192.168.0.1' 같은 IPv4 주소뿐만 아니라 10진수 정수, 16진수, 2진수 등 어떤 형식이든 자동으로 인식합니다.
  2. 입력과 동시에 점 표기, 10진수 정수, 16진수, 8진수, 2진수, IPv6 매핑 주소, 리버스 DNS 주소까지 모든 형태의 변환 결과가 즉시 계산되어 나타납니다.
  3. 결과 아래 '옥텟 분해' 섹션에서 IP 주소를 구성하는 각 옥텟의 값을 10진수, 16진수, 2진수로 상세히 확인할 수 있습니다.
  4. IP 클래스, 주소 용도(공인, 사설, 루프백 등), 클래스 기본 마스크 같은 분석 정보도 함께 제공되어 주소의 성격을 파악할 수 있습니다.
  5. 필요한 값 옆의 '복사' 버튼을 눌러 클립보드에 저장하고 원하는 곳에 바로 사용합니다.
  6. 페이지 하단의 '특수 용도 IPv4 대역' 표에서 항목을 클릭하면 해당 대역의 예시 주소가 자동으로 입력되어 변환 결과를 바로 확인할 수 있습니다.

IPv4 주소 변환기 사용 가이드

실제 작업에서 이 도구를 어떻게 쓰는지, 무엇을 조심해야 하는지 정리했습니다.

사설 IP 대역 — 172 대역에서 자주 틀립니다

주소를 넣으면 사설·공인·루프백 같은 판정이 칩으로 표시됩니다. 사설 대역은 인터넷으로 라우팅되지 않는, 즉 누구나 자기 내부망에서 마음대로 쓸 수 있는 주소입니다.

대역실제 범위어디서 보나
10.0.0.0/810.0.0.0 ~ 10.255.255.255기업 내부망, 클라우드 VPC
172.16.0.0/12172.16.0.0 ~ 172.31.255.255도커 기본 브리지(172.17.x.x)
192.168.0.0/16192.168.0.0 ~ 192.168.255.255가정·소규모 사무실 공유기
172 대역은 172.16 부터 172.31 까지입니다. 172.32.0.1 이나 172.15.0.1 은 사설이 아니라 남의 공인 IP입니다. /12 라는 프리픽스가 헷갈려 방화벽 규칙에 172.16.0.0/16 만 넣거나 172.0.0.0/8 을 통째로 넣는 실수가 자주 나옵니다. 확신이 없으면 이 도구에 주소를 넣어 "사설" 칩이 뜨는지 확인하세요.

CGNAT(100.64/10) — 접속자 IP를 믿으면 안 되는 이유

100.64.0.0/10 은 사설도 공인도 아닌 통신사 전용 공유 대역입니다. IPv4 주소가 고갈되어 통신사가 여러 가입자에게 공인 IP 하나를 나눠 쓰게 하면서 생겼습니다. 국내 모바일 데이터와 일부 인터넷 회선에서 실제로 이 대역을 받습니다.

실무에서 이게 왜 문제냐면, 접속자 IP 하나가 사람 한 명을 뜻하지 않게 되기 때문입니다. 어뷰징을 막겠다고 IP를 차단하면 같은 통신사 NAT를 쓰는 무고한 사용자 수백 명이 함께 막힙니다. 반대로 "같은 IP니까 같은 사람"이라는 판정도 틀립니다. 로그인 이력의 IP가 자꾸 바뀌는 것 역시 정상입니다 — 모바일에서는 NAT 세션이 바뀌면 IP가 바뀝니다.

  • IP 기반 차단은 짧은 시간의 속도 제한 정도로만 쓰고, 영구 차단의 근거로 삼지 마세요.
  • 중복 참여·어뷰징 판정은 IP가 아니라 계정·기기·전화번호 인증으로 하세요.
  • CGNAT 뒤에서는 포트 포워딩이 불가능합니다. 집 서버에 외부 접속이 안 된다면 이 대역인지부터 확인하세요.
  • 169.254 로 시작하는 주소가 보이면 DHCP를 못 받아 스스로 붙인 주소입니다. 즉 네트워크가 안 되고 있다는 신호입니다.

IP를 정수로 저장하는 이유 (DB 실무)

192.168.0.1 은 사람을 위한 표기이고 실체는 32비트 정수 3232235521 입니다. 이 도구가 두 표현을 오가는 이유는 DB에서 정수가 압도적으로 유리하기 때문입니다. VARCHAR(15)로 15바이트를 쓰는 대신 4바이트면 되고, 무엇보다 범위 검색이 인덱스를 탑니다. 문자열로 저장하면 "이 IP가 이 대역에 속하는가"를 LIKE로 흉내 내야 하는데 정확하지도 빠르지도 않습니다.

sql
-- 반드시 UNSIGNED. 그냥 INT면 128.0.0.0 이상이 음수가 되어 조회가 조용히 틀어집니다
CREATE TABLE access_log (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  ip INT UNSIGNED NOT NULL,
  ts DATETIME NOT NULL,
  INDEX idx_ip_ts (ip, ts)
);

-- 저장 / 조회
INSERT INTO access_log (ip, ts) VALUES (INET_ATON('192.168.0.1'), NOW());
SELECT INET_NTOA(ip) FROM access_log WHERE id = 1;

-- 대역 검색이 인덱스를 탄다 (192.168.0.0/24 안의 접속)
SELECT COUNT(*) FROM access_log
 WHERE ip BETWEEN INET_ATON('192.168.0.0') AND INET_ATON('192.168.0.255');
INT UNSIGNED 의 최대값 4,294,967,295 는 IPv4의 최대 정수값과 정확히 일치합니다. 우연이 아니라 둘 다 32비트이기 때문입니다. 이 도구가 그 값을 넘는 입력을 거부하는 것도 같은 이유입니다.

0으로 시작하는 주소가 왜 위험한가

이 도구는 점 표기, 정수, 16진수, 2진수, 8진수를 자동으로 알아봅니다. 로그나 코드에서 3232235521 이나 0xC0A80001 같은 값을 마주쳤을 때 되돌려 보라고 만든 기능인데, 여기엔 알아둘 만한 함정이 하나 있습니다.

많은 시스템이 0으로 시작하는 숫자를 8진수로 해석합니다. 010.1.1.1 을 어떤 라이브러리는 10.1.1.1 로, 어떤 라이브러리는 8.1.1.1 로 읽습니다. 이 차이가 실제 보안 사고로 이어집니다 — 검증 코드는 "10.x 사설망이 아니니 통과"라고 판단했는데 실제 요청은 전혀 다른 곳으로 나가는 식입니다. 서버가 사용자에게 받은 주소로 요청을 보내는 기능(SSRF 방어)에서 이 불일치를 노린 우회가 알려져 있고, 널리 쓰이던 IP 파싱 라이브러리에 이 문제로 취약점이 보고된 적도 있습니다.

사용자에게 받은 IP 문자열을 검증할 때는 표기를 먼저 하나로 정규화한 다음 판정하세요. 문자열 상태로 앞자리만 보고 판단하면 진법 해석 차이로 뚫립니다.

PTR 레코드와 클래스 표시에 대하여

결과에 나오는 in-addr.arpa 주소는 리버스 DNS(PTR) 조회에 쓰는 이름입니다. 옥텟을 거꾸로 뒤집는 게 규칙이라 헷갈리기 쉬운데 이 도구가 뒤집어 줍니다. 실무에서 이게 중요해지는 대표적인 곳이 자체 메일 서버입니다 — 발송 IP에 PTR이 없거나 도메인과 안 맞으면 수신 측이 스팸으로 처리하거나 아예 거부합니다. SPF·DKIM을 다 맞췄는데 메일이 안 들어간다면 PTR을 확인해 보세요. PTR은 IP를 할당한 쪽(호스팅 업체·통신사)에 요청해야 설정됩니다.

클래스 A/B/C 표시는 역사적 개념입니다. 1993년 CIDR이 도입되면서 실제 라우팅은 클래스가 아니라 프리픽스 길이로 결정됩니다. 옛 문서나 자격증 문제에 나오니 참고용으로 표시하지만, "이 주소는 클래스 C니까 /24"라는 추론은 지금 네트워크에서 성립하지 않습니다.

bash
# PTR 조회 — 이 도구가 만든 이름을 그대로 확인
dig -x 8.8.8.8 +short
nslookup 8.8.8.8

자주 묻는 질문

IP 주소를 정수로 변환해 저장하면 뭐가 좋은가요?

IP 주소를 문자열('192.168.0.1') 대신 32비트 정수(3232235521)로 저장하면 여러 이점이 있습니다. 첫째, 4바이트 정수로 저장 공간이 고정되어 효율적입니다. 둘째, 특정 IP 대역에 속하는지 검사하거나 IP 주소들을 정렬할 때 숫자 비교가 문자열 비교보다 훨씬 빠릅니다. GeoIP 데이터베이스나 방화벽 규칙 처리 시 성능 향상에 큰 도움이 됩니다.

제가 입력한 IP 주소는 안전하게 처리되나요?

네, 안전합니다. 이 도구의 모든 변환 및 분석 과정은 사용자의 웹 브라우저 내에서만 자바스크립트로 처리됩니다. 입력하신 IP 주소나 변환 결과 등 어떤 데이터도 저희 서버로 전송되지 않습니다. 회사의 내부망 IP 주소나 민감할 수 있는 정보를 다룰 때도 안심하고 사용하실 수 있습니다.

사설 IP와 공인 IP는 어떻게 다른가요?

공인 IP는 전 세계에서 유일한 주소로, 인터넷을 통해 직접 통신하는 데 사용됩니다. 반면 사설 IP(예: 10.x.x.x, 172.16.x.x~172.31.x.x, 192.168.x.x)는 가정이나 회사 등 내부 네트워크에서만 사용되는 주소입니다. 이 도구는 입력된 IP가 사설 IP 대역, 루프백(127.0.0.1) 등 특수 용도에 속하는지 자동으로 판별해 알려줍니다.

다양한 형식을 정말 자동으로 인식하나요?

네, 그렇습니다. 점으로 구분된 10진수(192.168.0.1), 32비트 정수, '0x' 접두사가 있거나 없는 16진수, 점으로 구분된 2진수나 8진수, 심지어 CIDR 표기(/24 등)가 붙은 주소까지 대부분의 일반적인 IP 주소 표현 형식을 자동으로 감지하여 변환합니다. 어떤 형식의 데이터를 가지고 있든 편하게 붙여넣기만 하면 됩니다.