WHOIS는 사라졌고, 나는 이를 대체하는 API를 만들었습니다

발행: (2026년 3월 5일 오후 07:03 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

Background

사이드 프로젝트에서 도메인 등록 데이터를 필요로 했습니다. 처음엔 WHOIS를 사용했지만, 레지스트라마다 출력 형식이 달라 표준이 없었고 파싱 코드가 계속 깨졌습니다.

Problems with WHOSQL

  • WHOIS는 더 이상 사용되지 않습니다.
  • ICANN은 RDAP(Registration Data Access Protocol)를 대체 기술로 추진하고 있습니다.
  • RDAP는 JSON을 반환하고 HTTPS를 통해 동작하며, 대부분의 레지스트리가 이미 전환했습니다.

RDAP Overview

RDAP는 도메인, IP, ASN 데이터에 대한 표준화된 JSON 인터페이스를 제공합니다. 하지만 RDAP를 직접 사용하기는 여전히 번거롭습니다:

  1. 단일 서버가 없음 – 각 TLD마다 자체 RDAP 서버가 있습니다. 어느 서버에 질의할지 결정하려면 IANA 부트스트랩 레지스트리를 참조해야 합니다.

  2. 도메인에 대한 2단계 조회.com·.net 등에서는 레지스트리가 기본 데이터만 저장합니다. 레지스트라(예: GoDaddy, Cloudflare)는 별도 서버에 나머지 데이터를 보관하고 있어 두 번의 요청과 병합이 필요합니다.

  3. vCardArray 형식 – 연락처 정보가 중첩된 vCard 구조로 저장됩니다. 예:

    ["vcard", [
      ["version", {}, "text", "4.0"],
      ["fn", {}, "text", "MarkMonitor Inc."],
      ["tel", {"type": "voice"}, "uri", "tel:+1.2086851750"],
      ["email", {}, "text", "abusecomplaints@markmonitor.com"]
    ]]

약 1,200개의 서로 다른 서버에서 이를 파싱하는 것은 오류가 발생하기 쉽습니다.

My Solution: RDAP API

복잡성을 추상화한 통합 RDAP API를 만들었습니다. 모든 TLD에 대해 일관된 JSON을 반환하는 단일 엔드포인트를 제공합니다:

{
  "domain": "google.com",
  "registrar": { "name": "MarkMonitor Inc.", "iana_id": "292" },
  "dates": {
    "registered": "1997-09-15T04:00:00Z",
    "expires": "2028-09-14T04:00:00Z"
  },
  "nameservers": ["ns1.google.com", "ns2.google.com"]
}

Features

  • 부트스트랩 처리 – 어떤 TLD든 올바른 RDAP 서버를 자동으로 찾아냅니다.
  • 레지스트라 연동 – 레지스트리와 레지스트라 데이터를 하나의 응답으로 병합합니다.
  • vCardArray 파싱 – 연락처 데이터를 사용하기 쉬운 필드로 변환합니다.
  • 요율 제한 관리 – RDAP 제한 내에서 동작하도록 내장된 스로틀링을 제공합니다.
  • IP 및 ASN 조회 지원.
  • 대량 조회 – 한 요청당 최대 10개 조회 가능.
  • 무료 조회 도구 – 홈페이지에 계정 없이 도메인, IP, ASN을 조회할 수 있는 툴을 제공합니다.

SDKs

여러 언어용 클라이언트 라이브러리를 공개했습니다. 아래는 Python 예시입니다:

from rdapapi import RdapApi

client = RdapApi("YOUR_API_KEY")
result = client.domains.lookup("google.com", follow=True)
print(result.registrar.name)  # MarkMonitor Inc.

Pricing & Documentation

  • API는 월 $9부터 시작하는 SaaS 형태이며 무료 체험을 제공합니다.
  • 전체 문서는 사이트에서 확인할 수 있습니다(링크: Docs here).

Community Question

아직도 프로덕션에서 포트 43 WHOIS를 사용하고 계신가요? 레지스트라마다 다른 형식을 어떻게 처리하고 계신가요?

0 조회
Back to Blog

관련 글

더 보기 »