주소 규칙
기본 주소 뒤에 /{유형}/{값}을 붙입니다. rdap.org와 같은 규칙이라 기존 코드에서 주소만 바꿔 쓸 수 있습니다.
기본 주소
https://rdap.co.kr/{domain | nameserver | ip | autnum | entity}/{값}
| 유형 | 예 | 넘겨주는 곳 (예) |
|---|---|---|
| domain | /domain/naver.com | rdap.verisign.com/com/v1/… |
| domain (한글) | /domain/한국.kr | rdap.nic.or.kr/domain/xn--3e0b707e.kr |
| nameserver | /nameserver/ns1.naver.com | rdap.verisign.com/com/v1/… |
| ip | /ip/8.8.8.8 | rdap.arin.net/registry/… |
| ip (대역) | /ip/211.249.0.0/16 | rdap.apnic.net/… |
| autnum | /autnum/4766 | rdap.apnic.net/… |
| entity | /entity/GOGL-ARIN | rdap.arin.net/registry/… |
한글 도메인은 퓨니코드로 바꿔 넘기고, AS4766처럼 앞에 붙은 AS는 떼고 넘깁니다. 주소 뒤 쿼리 문자열(?…)은 그대로 전달합니다.
코드 예시
리다이렉트를 따라가도록 설정하면 바로 담당 서버의 JSON을 받습니다. 브라우저 fetch는 기본으로 따라갑니다.
curl
curl -sL https://rdap.co.kr/domain/naver.com
JavaScript (브라우저·Node 18+)
const res = await fetch('https://rdap.co.kr/ip/8.8.8.8', {
headers: { Accept: 'application/rdap+json' }
});
const data = await res.json();
console.log(data.name, data.country);
PHP (curl)
$ch = curl_init('https://rdap.co.kr/domain/naver.com');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTPHEADER => ['Accept: application/rdap+json'],
]);
$data = json_decode(curl_exec($ch), true);
Python (requests)
import requests
r = requests.get('https://rdap.co.kr/autnum/4766',
headers={'Accept': 'application/rdap+json'})
print(r.url) # 최종 도착한 RDAP 서버 주소
print(r.json()['name'])
응답
이 서비스는 데이터를 직접 주지 않고 302로 넘기기만 합니다. 등록 정보는 넘겨받은 서버가 줍니다.
| 코드 | 상황 |
|---|---|
| 302 | 담당 서버를 찾았습니다. Location 헤더로 이동하세요. |
| 400 | 경로나 값의 형식이 틀렸습니다. |
| 404 | 그 값을 담당하는 RDAP 서버가 부트스트랩에 없습니다. (등록 여부와는 다른 뜻입니다) |
| 405 | GET·HEAD 외의 방식으로 요청했습니다. |
| 429 | 요청이 너무 많습니다. Retry-After 헤더만큼 기다리세요. |
오류일 때 본문은 RFC 9083 형식의 JSON입니다.
404 응답 본문 예
{
"rdapConformance": ["rdap_level_0"],
"errorCode": 404,
"title": "Not Found",
"description": ["이 대상을 담당하는 RDAP 서버가 IANA 부트스트랩에 없습니다.", "안내: https://rdap.co.kr/developers"]
}
요청 제한
| 대상 | 한도 |
|---|---|
| 리다이렉트 API | IP 주소당 10초에 10회 |
| 조회 화면 | IP 주소당 1분에 20회, 하루 300회 |
넘겨받은 RDAP 서버에도 각자의 한도가 있습니다. 대량 조회가 필요하면 담당 서버에 직접, 천천히 요청하고 응답을 저장해 다시 쓰세요. 302 응답에는 Cache-Control: max-age=3600이 붙어 있어 같은 주소는 1시간 동안 캐시해도 됩니다.