Watch-IP

방문자 지오로케이션에 VPN 및 Tor 신호 추가하기

방문자의 연결이 알려진 VPN 네트워크, Tor 출구 노드, 데이터센터/호스팅 네트워크, 또는 기타 지원되는 네트워크 범주와 일치하는지 확인하세요. Watch-IP는 이용 가능한 GET /v1/geo 응답에 이러한 지표를 추가해 애플리케이션이 다른 정보와 함께 가중치를 둘 수 있도록 합니다.

이용 가능한 요금제

security는 Starter, Growth, Scale, Enterprise 요금제에 포함됩니다. Free 요금제에서는 응답에서 완전히 생략됩니다 — 오해의 소지가 있는 모두 false인 객체로 보내지 않습니다 — 따라서 필드를 읽기 전에 존재 여부를 확인하세요.

IPv4와 IPv6의 커버리지는 다릅니다

IPv4 연결은 Tor, VPN, 데이터센터, 위협, 제재 대상 네트워크 목록과 대조됩니다. IPv6 연결은 Tor를 제외한 모든 항목과 대조됩니다 — 현재 무료로 이용 가능한 IPv6 Tor 출구 목록 소스가 없기 때문에, 실제로 Tor 출구인지와 관계없이 IPv6 연결의 isTor는 항상 false입니다. IPv6 커버리지를 IPv4와 동등하다고 설명하지 마세요.

생략, false, true는 서로 다른 상태입니다

보안 객체가 생략되었다는 것은 요금제에 이 데이터가 포함되지 않았다는 뜻이지, 연결이 검사되어 깨끗하다고 확인되었다는 뜻이 아닙니다. 포함된 필드의 false 값은 Watch-IP가 현재 로드한 목록에서 일치 항목이 없다는 뜻입니다 — 리스트 기반 탐지는 모든 것을 볼 수 없으므로 안전이 확인된 판정이 아닙니다. 평가되지 않았거나 false인 결과를 "Clean", "Safe", "Verified"로 표시하지 마세요.

소스와 업데이트

이 필드들의 기반이 되는 목록은 자체 저장소에서 수집 및 보관되며 일정에 따라 갱신됩니다. 콜드 스타트는 첫 조회에서 잠시 지연될 수 있습니다. 로드된 이후에는 백그라운드에서 갱신이 실행되는 동안 요청이 인메모리 캐시에서 처리되므로, 갱신이 느리거나 실패하면 오류 응답이 아니라 오래되었거나 비어 있는 데이터로 성능이 저하됩니다.

심사 워크플로 예시

isVpn이나 isDatacenter를 계정 히스토리 및 다른 신호와 함께 수동 심사 큐의 하나의 입력값으로 취급하고, 방문자를 즉시 차단하는 단독 근거로 삼지 마세요. 예를 들어 같은 가입 이벤트에서 일회용 이메일 확인과 결합하면 모든 VPN 사용자를 거부하는 대신 소수의 가입을 심사로 보내는 합리적인 방법이 됩니다.

이 기능이 하지 않는 것

이 필드들은 레지덴셜 프록시를 식별하지 않고, 신원을 검증하지 않으며, 포괄적인 위협이나 익명성 탐지 제품이 아닙니다 — 소수의 리스트 기반 지표일 뿐입니다.

보안 응답 필드

isTor
현재 로드된 IPv4 출구 목록 기준으로 알려진 Tor 출구 노드입니다. IPv6에서는 항상 false입니다.
isVpn
IPv4와 IPv6 모두에서 알려진 상용 VPN 제공업체 네트워크입니다.
isDatacenter
데이터센터/호스팅 네트워크 — 많은 VPN 출구가 호스팅 인프라에서 실행되므로 VPN의 상위 집합입니다.
isThreat
IPv4와 IPv6 모두에서 알려진 악성 IP 범위 또는 알려진 위협 ASN입니다.
isSanctionedNetwork
분기마다 검토되는 Watch-IP 관리 목록의 국가 제재 대상 통신/호스팅 네트워크 운영자입니다 — 다른 필드보다 신뢰도가 낮은 완화된 신호이며, 제재 컴플라이언스 심사가 아닙니다.

보안 필드를 안전하게 읽기

브라우저 JavaScript

const response = await fetch('https://api.watch-ip.com/v1/geo', {
  headers: { 'X-Api-Key': 'YOUR_PUBLISHABLE_KEY' },
});
const geo = await response.json();

if (!geo.security) {
  // 요금제에 보안 데이터가 포함되지 않습니다 — 이 연결에 대해 아무것도 가정하지 마세요.
} else if (geo.security.isVpn || geo.security.isDatacenter) {
  // 목록 일치 — 차단 자체가 아니라 자체 심사 로직의 하나의 입력값입니다.
} else {
  // 현재 로드된 목록에서 일치 항목 없음 — 연결이 안전하다는 보장은 아닙니다.
}

필드를 읽기 전에 항상 `security`가 존재하는지 분기 처리하세요 — 객체가 없는 것과 존재하지만 false인 필드는 서로 다른 의미입니다.

자주 묻는 질문

레지덴셜 프록시를 탐지하나요?

아닙니다. 현재 목록은 알려진 상용 VPN, Tor, 데이터센터, 위협/제재 대상 네트워크를 다루며, 실제 소비자 IP 주소를 경유해 목록 매칭이 훨씬 어려운 레지덴셜 프록시 서비스라는 더 넓은 범주는 다루지 않습니다.

false는 무엇을 의미하나요?

Watch-IP가 현재 로드한 목록에서 일치 항목이 없다는 뜻입니다. 목록이 존재하는 모든 VPN, 출구 노드, 악성 네트워크를 다룰 수 없으므로 연결이 안전하다는 긍정적인 진술이 아닙니다.

IPv6 Tor도 커버되나요?

아닙니다. 현재 구현에는 무료 IPv6 Tor 출구 목록 소스가 없어 IPv6 연결의 isTor는 오늘날 항상 false입니다. 다른 모든 필드는 IPv6를 커버합니다.

이 확인은 임의의 IP에도 이용할 수 있나요?

현재는 불가능합니다. 이 데이터는 연결된 브라우저 전용 GET /v1/geo 응답의 일부이며, 별도의 IP 조회 엔드포인트(/v1/lookup)는 보안 블록을 반환하지 않습니다.

플래그 하나만으로 차단할 수 있나요?

가능하지만, 단일 리스트 기반 플래그만으로 자동 차단하는 것은 근거가 약합니다 — 오탐이 발생하며, 정당한 사용자도 일반적인 이유로 VPN이나 공유 네트워크를 경유합니다. 대부분의 통합은 이 필드들을 심사 결정의 하나의 입력값으로 사용합니다.

관련 페이지