Watch-IP

Usa Watch-IP con JavaScript e TypeScript

@digitload/watch-ip-sdk (npm, v0.1.1) incapsula GET /v1/geo in un client leggero con tipi TypeScript per ogni campo della risposta e senza dipendenze a runtime.

Installazione

Richiede Node.js 18+ o qualsiasi browser moderno — entrambi forniscono la fetch globale su cui si basa questo pacchetto.

npm

npm install @digitload/watch-ip-sdk

Avvio rapido

Crea un client con la tua chiave pubblicabile e chiama getGeo(). Il GeoResponse restituito è completamente tipizzato; ogni campo tranne ip e isEUCountry è nullable, quindi controlla un campo prima di mostrarlo.

TypeScript

import { WatchIP } from "@digitload/watch-ip-sdk";

const client = new WatchIP("wip_pub_xxxxxxxx");
const geo = await client.getGeo();

console.log(geo.country, geo.city, geo.timezone);

Gestione degli errori e timeout

Ogni fallimento — una richiesta rifiutata (chiave non valida, origine non consentita, limite di frequenza) o un errore di rete — genera un WatchIPError con uno status e un code stabile. Non esiste un timeout integrato; passa il signal di un AbortController per annullare tu stesso una richiesta lenta.

TypeScript

import { WatchIP, WatchIPError } from "@digitload/watch-ip-sdk";

const client = new WatchIP("wip_pub_xxxxxxxx");
const controller = new AbortController();
setTimeout(() => controller.abort(), 5000);

try {
  const geo = await client.getGeo({ signal: controller.signal });
} catch (err) {
  if (err instanceof WatchIPError) {
    console.error(err.code, err.status, err.message);
  }
}

Campi opzionali

Passa include: ["hostname"] per aggiungere una ricerca DNS inversa per l'IP che si connette. È opzionale (opt-in) perché aggiunge un ulteriore passaggio di rete, quindi richiedilo solo se usi il campo.

TypeScript

const geo = await client.getGeo({ include: ["hostname"] });

Cosa non copre questo SDK

Questo pacchetto chiama solo GET /v1/geo. Non ha metodi per la ricerca IP, la validazione email o i controlli di rischio — quelli sono endpoint da server a server autenticati con una chiave segreta, non con la chiave pubblicabile attorno a cui è costruito questo SDK. Chiamali direttamente via HTTP; consulta il riferimento della ricerca IP e la guida all'autenticazione.

Pagine correlate