PHP에서 Watch-IP 사용하기
digitload/watch-ip-sdk(Packagist, v0.1.1)는 cURL을 기반으로 만든 Composer 패키지로 GET /v1/geo를 감쌉니다 — Guzzle 등 다른 HTTP 클라이언트 의존성이 없습니다.
설치
PHP 8.1 이상과 curl, json 확장이 필요하며, 두 확장 모두 거의 모든 PHP 설치에 기본 포함되어 있습니다.
Composer
composer require digitload/watch-ip-sdk빠른 시작
다른 서버 측 SDK와 마찬가지로, PHP에서 GET /v1/geo를 호출한다는 것은 방문자의 브라우저가 아니라 자체 서버에서 호출한다는 의미이므로, 키의 오리진 허용 목록 검사를 충족시키려면 origin을 명시적으로 전달하세요.
PHP
use Digitload\WatchIP\WatchIP;
$client = new WatchIP('wip_pub_xxxxxxxx', origin: 'https://example.com');
$geo = $client->getGeo();
echo $geo['country'], ' ', $geo['city'], ' ', $geo['timezone'];오류 처리와 타임아웃
모든 실패는 \RuntimeException을 확장한 WatchIPError를 던집니다. PHP의 Exception::getCode()는 int 타입이지만 API의 오류 코드는 문자열이므로, getCode() 대신 getErrorCode()로 읽으세요. options 배열에서 include와 함께 timeout(초 단위)을 전달할 수 있습니다.
PHP
use Digitload\WatchIP\WatchIP;
use Digitload\WatchIP\WatchIPError;
$client = new WatchIP('wip_pub_xxxxxxxx', origin: 'https://example.com');
try {
$geo = $client->getGeo(['timeout' => 5.0]);
} catch (WatchIPError $err) {
echo $err->getErrorCode(), ' ', $err->getStatus(), ' ', $err->getMessage();
}이 SDK가 지원하지 않는 것
이 패키지는 GET /v1/geo만 호출합니다. IP 조회, 이메일 검증, 위험도 확인은 아직 PHP 클라이언트가 없는 별도의 서버 간 엔드포인트입니다 — 인증 가이드에서 설명한 방식과 동일하게 인증하여 cURL로 직접 호출하세요.