API 문서
Base URL: https://api.ip.utilo.kr
모든 응답은 JSON 형식이며, 성공 시 { data: {...} }, 에러 시 { error: { code, message } } 구조를 따릅니다.
GET /ip
접속자의 IP 주소와 GeoIP 정보를 반환합니다.
curl https://api.ip.utilo.kr/ip
응답 예시:
{
"data": {
"ip": "203.0.113.1",
"country": "KR",
"city": "Seoul",
"region": "Seoul",
"timezone": "Asia/Seoul",
"latitude": 37.5665,
"longitude": 126.978,
"isp": "Korea Telecom",
"asn": "AS4766",
"org": "Korea Telecom"
}
}
GET /ip/:ip
특정 IP의 GeoIP 정보를 조회합니다.
curl https://api.ip.utilo.kr/ip/8.8.8.8
GET /ip/:ip/vpn
VPN/프록시/호스팅 여부를 감지합니다.
curl https://api.ip.utilo.kr/ip/1.1.1.1/vpn
응답 예시:
{
"data": {
"ip": "1.1.1.1",
"isVpn": false,
"isProxy": false,
"isHosting": true,
"isMobile": false,
"confidence": "high"
}
}
GET /whois/:ip
IP 주소의 RDAP/Whois 정보를 조회합니다.
curl https://api.ip.utilo.kr/whois/8.8.8.8
응답 예시:
{
"data": {
"ip": "8.8.8.8",
"name": "GOGL",
"handle": "NET-8-8-8-0-2",
"startAddress": "8.8.8.0",
"endAddress": "8.8.8.255",
"country": "US",
"registrant": "Google LLC",
"events": [
{ "action": "registration", "date": "2014-03-14T16:52:05-04:00" }
]
}
}
GET /dns/:domain
도메인의 DNS 레코드를 조회합니다.
| 파라미터 | 설명 | 기본값 |
|---|---|---|
type | 레코드 타입: A, AAAA, MX, TXT, NS, CNAME | A |
curl "https://api.ip.utilo.kr/dns/example.com?type=MX"
응답 예시:
{
"data": {
"records": [
{ "name": "example.com", "type": "MX", "ttl": 3600, "data": "10 mail.example.com." }
]
}
}
GET /dns/:ip/reverse
IP 주소의 역방향 DNS(PTR)를 조회합니다.
curl https://api.ip.utilo.kr/dns/8.8.8.8/reverse
GET /blacklist/:ip
IP 주소의 블랙리스트 등록 여부를 확인합니다. IPv4만 지원합니다.
curl https://api.ip.utilo.kr/blacklist/8.8.8.8
응답 예시:
{
"data": {
"ip": "8.8.8.8",
"isListed": false,
"sources": [
{ "name": "AbuseIPDB", "listed": false, "confidence": 0 }
]
}
}
GET /cidr
CIDR 표기법을 계산합니다.
| 파라미터 | 설명 | 예시 |
|---|---|---|
range | CIDR 범위 | 192.168.1.0/24 |
curl "https://api.ip.utilo.kr/cidr?range=10.0.0.0/16"
응답 예시:
{
"data": {
"network": "10.0.0.0",
"broadcast": "10.0.255.255",
"subnetMask": "255.255.0.0",
"totalHosts": 65536,
"usableHosts": 65534,
"firstHost": "10.0.0.1",
"lastHost": "10.0.255.254"
}
}
MCP Server
POST /mcp — JSON-RPC 2.0 프로토콜을 통한 LLM/AI 도구 연동 엔드포인트입니다.
curl -X POST https://api.ip.utilo.kr/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
MCP(Model Context Protocol)를 지원하는 AI 클라이언트에서 직접 연결할 수 있습니다.
캐싱
| 엔드포인트 | 캐시 TTL |
|---|---|
/ip, /ip/:ip | 24시간 |
/ip/:ip/vpn | 6시간 |
/whois/:ip | 7일 |
/blacklist/:ip | 1시간 |
/dns/:domain | 1시간 |
/cidr | 캐시 없음 |
Rate Limiting
IP당 분당 60회 요청으로 제한됩니다. 제한 초과 시 429 Too Many Requests를 반환합니다.