Anleitung zur IP-Standortabfrage mit JavaScript
Fragen Sie den Standort einer IP-Adresse im Browser oder mit Node.js ab.
Eine IP-Adresse mit JavaScript abfragen
Die Anfrage akzeptiert eine IPv4- oder IPv6-Adresse und fordert JSON an. Ersetzen Sie die Beispieladresse durch die Adresse, die Sie untersuchen möchten.
const ip = '8.8.8.8'; // Replace with an IPv4 or IPv6 address.
const response = await fetch(
'https://api.ipquery.io/' + encodeURIComponent(ip) + '?format=json',
{ signal: AbortSignal.timeout(8000) }
);
if (!response.ok) throw new Error('IPQuery returned HTTP ' + response.status);
const data = await response.json();
if (data.ip !== ip || !data.location || !data.isp) {
throw new Error('Unexpected IPQuery response');
}
console.log(data.location.country, data.location.city, data.isp.asn);Führen Sie das Beispiel in einem modernen Browser oder in Node.js mit fetch und AbortSignal.timeout aus. Browseranfragen ermitteln die angegebene Adresse; der Endpunkt für die eigene IP ermittelt die Adresse der Browserverbindung.
Standort- und Netzwerkfelder auswerten
location.country und location.country_code geben das ungefähre Land an. location.city kann leer oder ungenau sein. isp.asn identifiziert das Netzwerk, das nicht mit der Person oder dem Unternehmen übereinstimmen muss, die beziehungsweise das die Adresse verwendet.
Um die Adresse der anfragenden Verbindung zu ermitteln, rufen Sie folgenden Endpunkt auf: https://api.ipquery.io/?format=json. Eine Serveranfrage liefert die IP, mit der sich der Server verbindet; eine Browseranfrage liefert die nach außen sichtbare Adresse seiner Verbindung.
IPQuery in Dashy verwenden
Das Public-IP-Widget von Dashy unterstützt IPQuery ohne API-Schlüssel. Fügen Sie diesen Eintrag der Liste widgets in einem Ihrer Dashy-Abschnitte hinzu:
- type: public-ip
options:
provider: ipqueryBei deaktivierten Proxy-Einstellungen in Dashy sendet der Browser die Anfrage, und das Widget zeigt die öffentliche IP und den ungefähren Standort dieser Verbindung. Mit useProxy: true auf der obersten Ebene des Widgets oder mit aktiviertem appConfig.widgetsAlwaysUseProxy läuft die Anfrage über den Dashy-Server und zeigt stattdessen dessen öffentliche IP. useProxy: false auf der obersten Ebene des Widgets setzt die dashboardweite Einstellung nicht außer Kraft.
Das Widget verwendet den Endpunkt von IPQuery für die eigene IP. Um eine andere Adresse zu untersuchen, verwenden Sie die obige JavaScript-Anfrage für eine einzelne IP.
Optionen des Public-IP-Widgets von DashyGenauigkeit und Sicherheit
IP-Geolokalisierung ist eine Schätzung des Netzwerkstandorts, kein Gerätestandort. VPNs, Proxys, Mobilfunknetze und Gateways von Netzbetreibern können dazu führen, dass die Adresse weit vom Nutzer entfernt verortet wird. Behandeln Sie fehlende Werte als unbekannt, statt sie durch Vermutungen zu ersetzen.
Wenn Ihre Anwendung X-Forwarded-For auswertet, vertrauen Sie dem Header nur, wenn er von einem von Ihnen kontrollierten Proxy stammt. Vom Client gelieferte Header können gefälscht sein. Validieren Sie Adressen vor Standortabfragen und behandeln Sie Zeitüberschreitungen und HTTP-Fehler getrennt von erfolgreichen Ergebnissen.
API-Referenz