API 및 개발자 문서
예측 가능하고 가벼운 소형 JSON API입니다. 모든 엔드포인트는 당사의 공급업체 추상화 레이어를 통해 서버 측에서 프록시 처리되며, 응답 규격화, 가벼운 캐싱 및 부드러운 오류 처리를 제공합니다。
엔드포인트 (Endpoints)
GET /api/my-ip
서버가 인식한 호출자의 공인 IP 주소에 대한 위치 정보 및 네트워크 데이터를 반환합니다。
curl https://ipcheck.mubarokah.com/api/my-ip
GET /api/lookup?q=<ip|domain>
모든 IPv4, IPv6 주소 또는 순수 도메인을 검색합니다. 프로토콜(http/https) 스키마 및 경로는 거부됩니다。
curl "https://ipcheck.mubarokah.com/api/lookup?q=8.8.8.8"
POST /api/bulk
일괄 검색 (요청당 최대 50개). 동시 실행 요청 수는 서버 측에서 제어됩니다。
curl -X POST -H 'content-type: application/json' \
-d '{"queries":["8.8.8.8","1.1.1.1","example.com"]}' \
https://ipcheck.mubarokah.com/api/bulk응답 구조
{
"ok": true,
"query": "8.8.8.8",
"ip": "8.8.8.8",
"ipVersion": "IPv4",
"location": {
"continent": "North America",
"country": "United States",
"countryCode": "US",
"regionName": "Virginia",
"city": "Ashburn",
"zip": "20149",
"lat": 39.0438,
"lon": -77.4874,
"timezone": "America/New_York",
"utcOffsetSeconds": -14400,
"currency": "USD"
},
"network": {
"isp": "Google LLC",
"org": "Google Public DNS",
"as": "AS15169 Google LLC",
"asname": "GOOGLE",
"reverse": "dns.google"
},
"flags": { "mobile": false, "proxy": false, "hosting": true }
}오류 코드
invalid_query— 입력이 올바른 IP 또는 도메인이 아닙니다.rate_limited— 업스트림 공급업체 요청 한도에 도달했습니다.provider_unreachable— 업스트림 서버가 오프라인 상태입니다.
요청 제한 및 캐싱
응답 결과는 쿼리당 10분 동안 서버 측에 캐싱됩니다. 상류 제공업체의 무료 공개 등급은 호출 빈도가 제한되어 있으며 비상업적 용도로만 제공됩니다. 대규모 프로덕션 트래픽의 경우 아래에 명시된 환경 변수를 통해 상용 제공업체를 구성할 것을 권장합니다。
제공업체 추상화
서버 측에서 다음 환경 변수를 설정해 주세요. 시크릿 키는 브라우저상에 절대 노출되지 않습니다。
IP_PROVIDER=ip-api # or ip-api-pro IP_API_KEY=... # required for pro IP_API_BASE=http://ip-api.com
주의 사항
- IP 위치 정보는 추정치이며, 최상의 조건에서도 도시 또는 광역권 단위의 정확도를 가집니다。
- 사설(Private) 및 예약된 IP 대역은 위치 정보를 검색할 수 없습니다。
- API는 캐싱 처리에 필수적인 내용 외에는 쿼리 콘텐츠의 로그를 일절 기록하지 않습니다。
