Watch-IP

Watch-IP vs. IPinfo

IPinfo und Watch-IP bieten beide einen Batch-Endpoint zum Auflösen mehrerer angegebener IPs in einem Aufruf, jedoch mit unterschiedlichen Batch-Limits, Antwortformen und Preisen. Die folgenden Angaben wurden direkt auf der Website von IPinfo überprüft; keine der Tabellen erklärt einen Gesamtsieger.

Die Angaben zu IPinfo auf dieser Seite wurden am 8. September 2026 direkt auf den unter Quellen aufgeführten Seiten überprüft und können sich ohne Ankündigung ändern — überprüfe die Website des Anbieters erneut, bevor du dich auf eine bestimmte Zahl verlässt. Die Angaben zu Watch-IP stammen aus dem Code dieses Repositorys und der aktuellen /pricing-Seite. Melde alles, was veraltet wirkt, über /contact.

Was diese Seite vergleicht

Diese Seite vergleicht die serverseitige Abfrage einer angegebenen IP — die Kern-API und den Batch-Endpoint von IPinfo gegenüber GET /v1/lookup/{ip} und POST /v1/lookup von Watch-IP (geheimer Schlüssel, Geolokalisierungsdatenbank eines Drittanbieters). Sie vergleicht nicht das separate Browser-Produkt zur Besucher-Geolokalisierung von Watch-IP (GET /v1/geo, veröffentlichbarer Schlüssel, Origin-gebunden), das in diesem Vergleich kein Gegenstück hat.

Funktionsvergleich

Watch-IPIPinfo
AuthentifizierungGeheimer Schlüssel über den Header Authorization: Bearer.Token über einen Query-Parameter ?token=.IPinfo-Dokumentation zur Batch-Enrichment-API · 2026-09-08
Kostenlose StufeKeine für Abfragen. Tarife beginnen bei 19 $/Monat für 5000 Abfragen. (Das separate Produkt zur Besucher-Geolokalisierung von Watch-IP hat seine eigene kostenlose Stufe für die Browser-Nutzung, nicht für beliebige IP-Abfragen.)IPinfo Lite: 0 $/Monat, beschrieben als unbegrenzte Anfragen, nur Geolokalisierung auf Länderebene, plus 50 Abfragen über das Web-Dashboard.IPinfo Preise · 2026-09-08
Günstigster kostenpflichtiger Tarif19 $/Monat, 5000 Abfragen/Monat, 20 Anfragen/Minute.IPinfo Core: 26 $/Monat, 150 000 Anfragen/Monat; Ratenbegrenzung pro Tarif auf der Preisseite nicht aufgeschlüsselt.IPinfo Preise · 2026-09-08
Batch-Größe pro AufrufBis zu 100 IPs pro POST /v1/lookup-Aufruf.Bis zu 1000 IPs pro POST /batch-Aufruf.IPinfo-Dokumentation zur Batch-Enrichment-API · 2026-09-08
Form der Batch-AntwortEin Array „results“, in derselben Reihenfolge wie das übermittelte Array „ips“.Ein JSON-Objekt, indiziert nach IP-Adresse; die Reihenfolge der Antwort ist nicht als erhalten dokumentiert.IPinfo-Dokumentation zur Batch-Enrichment-API · 2026-09-08
Antwortfelder (Einzelabfrage)ip, country, region (Subdivision-Code), city, postalCode (bei dieser Quelle immer null), latitude, longitude, continent, timezone (bei dieser Quelle immer null), found.Core-Tarif: city, region, region_code, country, country_code, continent, continent_code, latitude, longitude, timezone, postal_code; ASN-/Organisationsfelder sind für höhere Tarife separat dokumentiert.IPinfo Core API — Geolokalisierungsdaten · 2026-09-08

Migration von IPinfo

Eine lauffähige Version jedes Schritts unten befindet sich in examples/migrate-from-ipinfo.mjs im GitHub-Repository von Watch-IP — sie führt beide Anfragen aus und gibt beide Antworten aus, damit du sie selbst vergleichen kannst.

1. Batch-Anfrage ersetzen

Das Token wandert von einem Query-Parameter in einen Authorization-Header, und der Anfragekörper ändert sich von einem reinen Array zu einem Objekt mit einem Schlüssel „ips“.

IPinfo

curl -X POST "https://api.ipinfo.io/batch?token=$IPINFO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '["203.0.113.1", "2001:db8::1"]'

Watch-IP

curl https://api.watch-ip.com/v1/lookup \
  -H "Authorization: Bearer YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ips": ["203.0.113.1", "2001:db8::1"]}'

2. Eine nach IP indizierte Zuordnung nachbauen, falls dein Code eine erwartet

Die Batch-Antwort von IPinfo ist ein Objekt, das du direkt nach IP indizierst. Watch-IP gibt stattdessen ein geordnetes Array zurück — verbinde es mit dem „ips“-Array der Anfrage, um dieselbe Form der Abfrage nach IP zu erhalten, die dein bestehender Code erwarten könnte.

Lesen einer IPinfo-Antwort

const city = data["203.0.113.1"].city;

Lesen einer Watch-IP-Antwort

const map = Object.fromEntries(ips.map((ip, i) => [ip, results[i]]));
const city = map["203.0.113.1"].city;

3. Größere Batches aufteilen

Ein Auftrag, der sich dem 1000-IP-Limit von IPinfo nähert, muss in mehrere aufeinanderfolgende Aufrufe aufgeteilt werden, um das 100-IP-Limit von Watch-IP einzuhalten — rechne für dasselbe Gesamtvolumen mit etwa 10-mal so vielen Anfragen.

Ein IPinfo-Aufruf

await fromIpinfoBatch(thousandIps);

Mehrere Watch-IP-Aufrufe

for (let i = 0; i < ips.length; i += 100) {
  await fromWatchIpBatch(ips.slice(i, i + 100));
}

Siehe examples/migrate-from-ipinfo.mjs im Watch-IP-Monorepo auf GitHub für die lauffähige Version dieser Migration.

Häufig gestellte Fragen

Warum ist das Batch-Limit von Watch-IP kleiner als das von IPinfo?

IPinfo dokumentiert ein Limit von 1000 IPs pro Batch-Aufruf; das von Watch-IP liegt bei 100. Wenn du regelmäßig mehr als 100 IPs pro Auftrag bündelst, plane mehrere aufeinanderfolgende POST /v1/lookup-Aufrufe statt eines einzigen großen.

Bietet Watch-IP eine kostenlose Stufe wie IPinfo Lite?

Nein, Stand 8. September 2026. IPinfo Lite bietet unbegrenzte Anfragen auf Länderebene kostenlos an; das IP-Abfrage-Produkt von Watch-IP hat keine kostenlose Stufe. Das separate Produkt zur Besucher-Geolokalisierung von Watch-IP hat seine eigene kostenlose Stufe für die Browser-Nutzung — ein anderes Produkt mit einem anderen Schlüsseltyp als die beliebige IP-Abfrage.

Bleibt die Reihenfolge der Ergebnisse in einer Batch-Antwort erhalten?

POST /v1/lookup von Watch-IP gibt sein Array „results“ immer in derselben Reihenfolge zurück, in der das Array „ips“ übermittelt wurde. Die Batch-Antwort von IPinfo ist ein nach IP indiziertes JSON-Objekt statt eines geordneten Arrays — Code, der eine der beiden Antworten liest, muss für deren tatsächliche Form geschrieben werden, statt Austauschbarkeit anzunehmen.

Quellen

Verwandte Seiten