- Eine IP-Geolokalisierungsdatenbank verknüpft IP-Bereiche mit Land, Stadt, Postleitzahl, Zeitzone und Koordinaten; ipapi.is bietet kostenlose CSV- sowie kommerzielle CSV/MMDB-Datenbanken an
- Die Gratisversion deckt nicht den gesamten IPv4- und IPv6-Adressraum ab und ist weniger präzise, die kommerzielle Version ist jedoch die vollständige Datenbank, die im
location-Feld der API verwendet wird, und wird mindestens zweimal pro Woche aktualisiert - Wer so etwas selbst aufbauen will, muss
geolocundgeofeedaus WHOIS, Standortableitung aus WHOIS-Adress- und Beschreibungsfeldern sowie öffentliche Projekte wie RIPE IPmap, geofeed-finder und OpenGeoFeed gemeinsam nutzen - Wenn Netzwerke auf mehrere Regionen verteilt sind oder IPs neu zugewiesen bzw. vermietet werden, leidet die Genauigkeit; die
geoloc-Abdeckung bei RIPE NCC lag im Juli 2023 bei 2,3 %, die Abdeckung vongeofeed-URLs bei 0,17 % - Gesammelte Daten erfordern Anreicherung und Normalisierung, etwa um aus Stadt/Land Koordinaten zu ermitteln oder aus Koordinaten die nächste Stadt zu finden; ipapi.is nutzt dafür GeoNames-Dateien für Postleitzahlen, Städte und Länder
Aufbau einer IP-Geolokalisierungsdatenbank
- Eine IP-to-Geolocation-Datenbank speichert Geolokalisierungsinformationen für einzelne IP-Bereiche
- Eine IP-Adresse kann mit folgenden Informationen geolokalisiert werden
- Land, Stadt, Bundesstaat/Region, Postleitzahl
- Zeitzone
- Breitengrad, Längengrad
- Die Datenbank von ipapi.is ist in eine Gratisversion und eine kommerzielle Version unterteilt
- Die Gratisversion kann im CSV-Format heruntergeladen werden
- Die kommerzielle Version wird im CSV- und MMDB-Format bereitgestellt
- Die kommerzielle Version deckt den gesamten IPv4- und IPv6-Adressraum ab
- Die Gratisversion enthält nur einen Teil des IPv4- und IPv6-Adressraums
- Die kommerzielle Datenbank wird mindestens zweimal pro Woche aktualisiert
Unterschiede zwischen Gratis- und kommerzieller Version
- Die kostenlose IP-Geolokalisierungsdatenbank hat weniger Einträge als die kommerzielle Version und deckt nicht den gesamten IPv4- und IPv6-Adressraum ab
- Die Gratisversion hat eine geringere Geolokalisierungsgenauigkeit
- Die wichtigsten Quellen der Gratisversion sind WHOIS-Daten und RFC 8805 Geofeeds
- Die kommerzielle Datenbank ist die vollständige Datenbank, die im
location-Feld der API von ipapi.is verwendet wird - Die kommerzielle Version ermittelt Standorte durch die Kombination mehrerer Quellen
- WHOIS-Einträge
- ping- und traceroute-basierte aktive Latenzmessungen
- RFC 8805 Geofeeds
- Reverse-DNS-Lookups
Datenbankformate und Genauigkeitsfeld
- Die Datenbankdateien liegen im CSV- oder MMDB-Format vor
- Wichtige Felder enthalten zusammen IP-Bereich, Standort, Koordinaten und Genauigkeit
ip_version: IPv4 ist4, IPv6 ist6start_ip,end_ip: Start- und End-IP des Netzbereichscontinent,country_code,country,state,city,ziptimezone,latitude,longitudeaccuracy
accuracykennzeichnet die geschätzte Genauigkeit der Geolokalisierungsinformation auf einer Skala von 1 bis 51: sehr hohe Genauigkeit, meist auf Stadtebene zuverlässig2: hohe Genauigkeit, in der Regel auf Stadtebene zuverlässig3: mittlere Genauigkeit, auf Stadtebene nicht zuverlässig4: geringe Genauigkeit, meist auf Länderebene korrekt5: sehr geringe Genauigkeit, voraussichtlich nur auf Länderebene korrekt
So prüft man ein MMDB-Beispiel
- Ein MMDB-Beispiel kann mit
curlheruntergeladen werden - Mit mmdbctl lässt sich das Beispiel lesen
mmdbctl read -f json-pretty 0.239.249.144 locationSample.mmdb
- Die Beispielausgabe liefert für die IP
0.239.249.144folgende Informationen- Stadt
Copenhagen - Land
Denmark - Koordinaten
55.67594,12.56553 - Netzwerk
0.239.249.144-0.239.249.151 - Quelle
geofeed|https://api.arelion.com/public/v1/geolocation
- Stadt
Einsatz und Grenzen der IP-Geolokalisierung
- IP-Geolokalisierung ist der Prozess, eine IP-Adresse auf einen durch Breiten- und Längengrad definierten geografischen Standort abzubilden
- Online-Unternehmen und Serviceanbieter nutzen Geolokalisierungsinformationen für verschiedene Zwecke
- zielgerichtete Werbung
- Betrugserkennung und -verhinderung
- Lokalisierung von Inhalten
- DRM und Compliance
- Netzwerksicherheit
- Analysen und Insights
- Dass IP-Geolokalisierung nicht immer genau ist, hat strukturelle Gründe
- Zugewiesene IPv4- und IPv6-Netze können geografisch verteilt sein
- Es gibt Netze, die sich über mehrere Regionen erstrecken, etwa Mobilfunk- oder Satellitennetze
- Wenn ein Regional Internet Registry oder ein Unternehmen für IP-Vermietung IP-Netze neu zuweist oder weitervergibt, kann sich der Standort ändern
- Die Geolokalisierung von IP-Adressen ist komplex, kann aber bei IP-Adress-APIs eine Genauigkeit liefern, die schwer zu ignorieren ist
Was für einen Aufbau von Grund auf nötig ist
- Jede IP-Adresse im Internet gehört einer bestimmten Organisation oder wird von ihr verwaltet
- Regional Internet Registries (RIRs) wie ARIN und APNIC speichern Eigentumsinformationen in WHOIS-Datenbanken
- WHOIS-Einträge enthalten nicht immer Geolokalisierungsinformationen für zugewiesene Netze
- Organisationen, denen Netzwerke gehören, können IPs an beliebigen geografischen Standorten nutzen, an Dritte weitergeben oder IP-Blöcke vermieten
- Die Erfassung von Geolokalisierungsinformationen lässt sich grob in drei Bereiche unterteilen
- Extraktion direkter Geolokalisierungsdaten wie
geolocundgeofeedaus WHOIS-Einträgen - indirekte Standortableitung aus Postadresse, Beschreibung und Länderangaben in WHOIS
- Nutzung öffentlicher Projekte wie RIPE IPmap, geofeed-finder und OpenGeoFeed
- Extraktion direkter Geolokalisierungsdaten wie
Direkte Geolokalisierungsdaten je RIR
-
RIPE NCC
- Die Objekte
inetnumundinet6numvon RIPE NCC weisen IP-Netze Organisationen zu - Geolokalisierungsinformationen können über die beiden Attribute
geolocundgeofeedbereitgestellt werden geolocenthält Breitengrad und Längengrad als Zeichenkette- Beispiel:
47.855374 12.132041 - Im Juli 2023 enthielt die Datenbank von RIPE NCC 4.190.644
inetnum- und 819.381inet6num-Objekte - Davon enthielten 114.389 Objekte das Attribut
geoloc, was einer Gesamtabdeckung von 2,3 % entspricht geofeedenthält die URL einer CSV-Datei im Format von RFC 8805- Eine geofeed-URL kann in einem dedizierten
geofeed-Attribut oder imremarks-Attribut im FormatGeofeed {URL}stehen - Im Juli 2023 gab es bei RIPE NCC 6.643 geofeed-URLs im
remarks-Attribut und 2.035 WHOIS-Einträge mit einemgeofeed-Attribut - Die Abdeckung von geofeed-URLs beträgt 0,17 %, diese Zahl kann aber irreführend sein, weil eine einzelne geofeed-Datei mehrere Netze enthalten kann
- Die Objekte
-
ARIN
- ARIN stellt Geolokalisierungsinformationen bereit, indem eine geofeed-URL im Attribut
CommentdesNetRange-Objekts hinterlegt wird - Ein Antrag auf ein eigenes geofeed-Attribut wurde zwar gestellt, aber mit der Begründung abgelehnt,
CommentoderRemarkreichten aus - Anders als RIPE NCC verwendet die ARIN-Datenbank kein
geoloc-Attribut
- ARIN stellt Geolokalisierungsinformationen bereit, indem eine geofeed-URL im Attribut
-
LACNIC
- LACNIC ist bei der Unterstützung von Geolokalisierung aktiver als ARIN
- LACNIC betreibt einen Geofeed Service, über den Mitglieder Geolokalisierungsinformationen für ihre IP-Adressen bereitstellen können
- Öffentliche Daten sind unter milacnic.lacnic.net/lacnic/geofeeds verfügbar
- Die WHOIS-Datenbank von LACNIC liefert standardmäßig Geolokalisierungsinformationen auf Stadtebene
- Die LACNIC-Datenbank kann vom FTP-Server ftp.lacnic.net/lacnic/dbase/ heruntergeladen werden
-
AFRINIC und APNIC
- AFRINIC gibt an, keinen Geolokalisierungsdienst anzubieten und auch keine formale oder operative Beziehung zu Geolokalisierungsanbietern zu haben
- AFRINIC unterstützt ähnlich wie RIPE NCC die Verwendung von geofeed-URLs im
remarks-Attribut - APNIC unterstützt Geolokalisierung nahezu auf dem gleichen Niveau wie RIPE NCC
geoloc-Attribut- geofeed-URLs im
remarks-Attribut
- APNIC zeigt sich offen für Verbesserungen bei der Geolokalisierungsunterstützung
Methoden zur Standortableitung aus WHOIS
- Der Hauptzweck von WHOIS besteht darin, Registrierungsinformationen über die Organisation bereitzustellen, der Internetnummern wie IP-Adressen oder AS-Nummern gehören
- WHOIS enthält häufig die Postadresse und das Land des Hauptsitzes oder Verwaltungsstandorts einer Organisation
- Manchmal entspricht die Postadresse einer Organisation dem tatsächlichen Nutzungsort der IP-Adressen, aber eben nicht immer
- Bei großen Organisationen muss die Verwaltungsadresse nicht mit dem Standort aller ihrer IP-Adressen übereinstimmen
-
Ableitung bei RIPE NCC
- In den Objekten
inetnumundinet6numvon RIPE NCC können folgende Attribute genutzt werdencountry: liefert nur Genauigkeit auf Länderebenedescr: Netzwerkbeschreibung, kann Standort- oder Adressinformationen enthaltennetname: schwer zu parsen und wenig verlässlichaddress: streng genommen ein Attribut desrole-Objekts und enthält die Postadresse
- Das Attribut
countryidentifiziert den zweistelligen ISO-3166-Ländercode, legt aber nicht fest, ob dieses Land dem Hauptsitz, dem Rechenzentrum oder dem Endnutzerstandort entspricht - Das Attribut
descrist Freitext, kann aber für die Geolokalisierungsableitung nützlich sein, wenn Organisationen dort Standort- und Adressinformationen eintragen addresskann hohe Genauigkeit liefern, führt aber zu Fehlern, wenn man annimmt, dass die Postadresse eines Rollenobjekts dem tatsächlichen Nutzungsort der IP-Adresse entspricht
- In den Objekten
-
Ableitung bei ARIN
- Bei ARIN können die folgenden WHOIS-Attribute bei kleinen Organisationen oder Organisationen mit nur einem Standort relativ zuverlässig sein
AddressCityStateProvPostalCodeCountry
- Organisationen wie Universitäten, Krankenhäuser oder Behörden nutzen die IP-Adressen eines
NetRange-Objekts mitunter am gleichen Ort wie ihre Verwaltungsadresse - Bei großen Unternehmen oder landesweit tätigen Organisationen mit vielen
NetRange-Bereichen kann die Verwaltungsadresse jedoch vom tatsächlichen Nutzungsort abweichen - Im Beispiel Google Fiber landet man mit der WHOIS-Adresse in Mountain View, California, die meisten Geolokalisierungsanbieter verorten die betreffende IP jedoch in San Antonio, Texas
- Bei ARIN können die folgenden WHOIS-Attribute bei kleinen Organisationen oder Organisationen mit nur einem Standort relativ zuverlässig sein
-
LACNIC, AFRINIC, APNIC
- LACNIC liefert Geolokalisierung bereits in der WHOIS-Datenbank, daher ist keine separate Ableitung nötig
- AFRINIC verwendet dasselbe WHOIS-Datenbankformat wie RIPE NCC, daher lassen sich dieselben Prinzipien anwenden
country,descraddressimrole-Objekt
- APNIC verwendet ebenfalls dasselbe WHOIS-Datenbankformat wie RIPE NCC, daher gelten dieselben Prinzipien
Öffentliche Geolokalisierungsprojekte
-
RIPE IPmap
- RIPE IPmap war eine API für Geolokalisierungsdaten zentraler Internetinfrastruktur
- Es scheint nicht mehr gepflegt zu werden; seit 2019 scheint es keine neuen Beiträge mehr gegeben zu haben
- RIPE IPmap leitete die Geolokalisierung von IP-Adressen mit mehreren Engines ab
- Die Engines
latencyundsingle-radiusnutzten Messwerte von RIPE Atlas, um einen Latenzradius für IP-Adressen bereitzustellen - Minimale RTT-Messwerte liefern wegen der Lichtgeschwindigkeit in Glasfaser eine Obergrenze für die maximal mögliche Entfernung
- Die Engine
reverse-dnsextrahierte Geolokalisierung auf Stadtebene aus Hostnamen von PTR-Einträgen - Die RIPE-IPmap-Datenbank kann unter https://ftp.ripe.net/ripe/ipmap/ heruntergeladen werden
- Genauigkeit und Abdeckung des Projekts haben laut der Website des früheren Maintainers deutlich nachgelassen
-
geofeed-finder
- geofeed-finder ist ein Open-Source-Tool, das geofeed-Dateien in WHOIS-Daten erkennt und abruft
- Das Tool übernimmt außerdem die Verifizierung von Prefix-Eigentum, Cache-Verwaltung und ISO-Code-Prüfung
- Gemäß RFC 9092 lassen sich geofeeds aus WHOIS-Daten extrahieren
- Da die Abdeckung von geofeed-Informationen im gesamten Netz sehr gering ist, bleibt die praktische Nutzbarkeit begrenzt
-
LACNIC Geofeeds Service und OpenGeoFeed
- Der LACNIC Geofeeds Service liefert Geolokalisierungsinformationen für einen erheblichen Teil der LACNIC-Mitglieder
- Die Daten können unter milacnic.lacnic.net/lacnic/geofeeds öffentlich heruntergeladen werden
- Das ist ein wichtiges Projekt, weil es zeigt, dass sich Geolokalisierungsinformationen auf RIR-Ebene sammeln lassen
- OpenGeoFeed ist ein Open-Source-Projekt, das eigene öffentliche geofeeds nach RFC 9092 sammelt
- OpenGeoFeed stellt eine einzelne Datei mit bekannten öffentlichen geofeed-Dateien bereit: opengeofeed.org/feed/public.csv
- OpenGeoFeed ist vielversprechend, allerdings scheint die geofeed-Abdeckung nicht aktuell zu sein und die Datenquellen dürften nur selten aktualisiert werden
Datenanreicherung und Normalisierung
- Rohdaten zur Geolokalisierung aus verschiedenen Quellen können unvollständig oder inkonsistent sein
- Es kann sowohl Einträge mit Land- und Stadtangaben ohne Koordinaten als auch Einträge mit Koordinaten ohne Land- und Stadtangaben geben
- Wenn ein Rohdatensatz nur das Land enthält, ist eine Genauigkeit über Länderebene hinaus kaum erreichbar
- Die gesammelten Daten müssen in ein gemeinsames Format angereichert und transformiert werden
- Die Datenanreicherung erfolgt mithilfe von Open-Source-Geodatenbanken
- Bei der Anreicherung gibt es zwei Fälle
- Breitengrad und Längengrad anhand eines Stadt-Land-Paars finden
- Aus Breitengrad und Längengrad die nächstgelegene Stadt und das Land bestimmen
- ipapi.is verwendet für die Anreicherung von Geolokalisierungsinformationen die folgenden Datenbanken
- GeoNames Postal Code Files: weltweite Postleitzahlen, einige Länder sind aus rechtlichen Gründen ausgenommen
- cities500.zip: Städte mit mehr als 500 Einwohnern
- countryInfo.txt: Ländermetadaten wie Hauptstädte, Bevölkerung und Kontinente
1 Kommentare
Kommentare auf Hacker News
Ich habe seine Beiträge schon gern gelesen, bevor ich zu IPinfo kam, und IPinfo bietet IP-Geolocation-Datendienste an.
Wir verwenden eine gegenüber der hier beschriebenen Methode erweiterte Methodik und nutzen auch einige öffentliche Datensätze, aber unsere zentralen Standortdaten stammen aus pingbasierten Messungen.
Wir senden von mehreren Servern weltweit Pings an IP-Adressen und bestimmen den Standort per Multilateration. Ein Ping von einem einzelnen Server liefert nur eindimensionale Information – irgendwo innerhalb eines bestimmten Radius –, aber wenn man das von mehreren Servern aus wiederholt, wird der Standort immer genauer.
Mit genügend Messungen lässt sich eine Genauigkeit erreichen, die nahe an die Postleitzahlenebene herankommt; derzeit haben wir weltweit mehr als 600 Messserver und bauen das Netzwerk weiter aus.
Öffentliche Daten sind veraltet oder werden nicht häufig aktualisiert, sind im Allgemeinen nicht präzise genug, um nützlich zu sein, und liefern oft nur Standorte für große IP-Bereiche oder Organisationen.
Außerdem gibt es bei öffentlichen Datensätzen keinen Verifizierungsprozess. Mit der Zunahme von IPv4-Handel und VPN-Diensten haben wir auch Fälle gesehen, in denen falsche Informationen eingeschleust wurden; daher nehmen wir Hinweise zur Korrektur von IP-Standorten dankbar an, verifizieren sie aber immer.
Aus Erfahrung mit dem Betrieb eines Messnetzwerks ist es sehr viel einfacher und günstiger, in New York einen Server zu kaufen als in irgendeinem Land in Zentralafrika. Der Standort einer IP-Adresse hat großen Einfluss darauf, welchen Wert diese IP bieten kann.
Wir stellen auch eine kostenlose IP-to-Country-ASN-Datenbank bereit, die man für Projekte nutzen kann: https://ipinfo.io/developers/ip-to-country-asn-database
Die Idee der Latenz-Triangulation gefällt mir. Ich habe Latenzinformationen für verschiedene Zwecke wie VPN- und Proxy-Erkennung verwendet, hätte aber nicht gedacht, dass man damit einen so genauen Standort erhalten kann.
Mit 600 Servern dürfte Latenz-Triangulation eine ziemlich gute Näherung liefern; das ist beeindruckend.
Ein paar Dinge würde ich allerdings gern wissen: Wie geht ihr damit um, dass manche ISPs ICMP-Traffic mit niedriger Priorität behandeln oder drosseln? Wenn man alle IPv4-Adressen geolokalisieren will, müsste man ständig Milliarden von Adressen anpingen – messt ihr also nur eine zufällige IP pro zugewiesenem inetnum/NetRange? Und da die meisten IP-Adressen nicht auf ICMP antworten: Findet ihr den Router vor dem Ziel und bestimmt dessen Standort?
Wir verwenden sie außerdem für Länderdaten in Kunden-Audit-Logs sowie zur Spam-Abwehr und Betrugserkennung.
Dann könnte man die Datei nach S3, Google Cloud usw. kopieren und direkt mit verschiedenen Tools abfragen. Mit CSV geht das zwar auch, aber nicht besonders reibungslos.
Wenn man es nicht selbst implementieren möchte, kann man es mit einem einfachen Cloudflare Worker kostenlos von Cloudflare erledigen lassen. Jede Cloudflare-Anfrage enthält grobe Informationen zum IP-Standort.
Man kann auch eine Anfrage an diese URL schicken, die über einen Cloudflare Worker läuft. Weltweit sollte die Latenz niedrig sein: https://www.edenmaps.net/iplocation
Für kleine Apps ist das in Ordnung; ich bitte nur darum, nicht 10 Millionen Anfragen pro Tag dorthin zu schicken.
Ich lebe in einem Land, dessen Landessprache nicht meine Muttersprache ist, und ich hasse Websites wirklich, die die Sprache anhand des IP-Standorts erraten und sie erzwingen.
Obwohl der Browser den Sprach-Header sehr eindeutig sendet, ignorieren sie ihn und legen die Sprache auf Basis einer faulen Annahme fest.
In der Branche nennt man das „Personalisierung der Web-Erfahrung“, aber es ist eine nervige Art davon. Ich habe niemandem je empfohlen, das so zu machen.
Wenn man eine Website per IP-Geolocation personalisiert, ist das Beste wohl so etwas wie Steuern, Versandkosten oder das Land des Nutzers in einem Länder-Dropdown ganz nach oben zu setzen.
Darüber hinaus fällt mir kaum etwas ein. Übersetzungen funktionieren meist nicht gut und stören nur. Selbst wenn eine Website gute Absichten hat, ist es keine gute Idee, mit Google Translate eine lokale Sprachversion zu erstellen.
Es gibt nur wenige Technologien, die das alltägliche Interneterlebnis so sehr ruinieren wie diese Datenbanken.
Ich wünschte, sie würden einfach verschwinden.
Websites könnten beim ersten Laden einfach nach der Postleitzahl fragen, statt jedes Mal falsch zu raten und den Korrekturablauf hinter mehreren Links und Seitenladevorgängen zu verstecken.
Außerdem gibt es keine Möglichkeit, die Datenbank zu korrigieren und eine „richtige“ oder „bessere“ Antwort zu erzeugen, weil ich fast nie möchte, dass eine Website meinen aktuellen Standort verwendet.
Meistens prüfe ich den Lagerbestand eines Geschäfts an einem Ort, zu dem ich später fahren werde. Dieses ganze Feld versucht im Grunde, ein schlecht definiertes Problem zu lösen.
Hängt vom Einsatzzweck und der benötigten Genauigkeit ab
Die beste Methode, einen Geolocation-Dienst aufzubauen, ist, eine Milliarde Geräte zu haben, die gleichzeitig ihren Standort und ihre IP melden. Praktisch sind Apple und Google in dieser Position
Da sie laufend Aktualisierungen zu IPs und Standorten erhalten, haben sie die besten Geolocation-Datenbanken der Welt
Der Kern ist, eine App zu bauen, bei der Menschen freiwillig ihren Standort bereitstellen, und dafür zu sorgen, dass viele Menschen diese App nutzen. Deshalb verlangen heutzutage alle Apps Standortberechtigungen
Foursquare war im Prinzip auf dem richtigen Weg, war aber zu früh dran
Um zu bestimmen, welcher Endpunkt für eine bestimmte IP oder ein Subnetz optimal ist, musste man HTTP-Session-Telemetrie verwenden, und daraus entstand eine eigene GeoIP-ähnliche Datenbank auf Basis realer Bedingungen
Trotzdem musste sie aus Datenschutzgründen so kurzlebig wie möglich gehalten werden. Die Reverse-Geocoding-Ergebnisse von Apple Maps durften außerhalb des Kontexts von Echtzeit-Nutzeranfragen, etwa der Suche nach Restaurants in der Nähe, weder verwendet noch protokolliert werden
In gewisser Weise damit verwandt: Google Maps kann IP-Standorte daraus lernen, welche Orte man auf der Karte erkundet
Wenn man einen bestimmten Ort oft genug ansieht, verwendet Google Maps diesen Ort beim Öffnen als Standardposition, selbst wenn man alle Cookies löscht
Das ist mir bei der Nutzung von Google Maps aufgefallen, und wenn man bedenkt, dass mehrere Personen dieselbe IP-Adresse teilen können, ist der Datenschutzaspekt etwas beunruhigend
Interessant, aber ich glaube nicht, dass die tatsächliche Geolocation so berechnet wird
ARIN/RIPE-Daten sind über die Länderebene hinaus nicht genau genug und daher nicht nützlich
Kommerzielle Geolocation korreliert Client-IPs mit bekannten physischen Standorten. Zum Beispiel mit WiFi-AP-Informationen oder Paketzustellungen an Nutzer. Zumindest habe ich das seit Jahrzehnten so gehört
Es gibt auch Geräte-Geolocation, aber wenn der Nutzer dem Teilen von GPS-Daten nicht zustimmt, wird fürs Targeting nur die IP-Adresse verwendet. Ein verbreiteter Anbieter ist MaxMind, der eine Datenbank ausliefert, die man lokal hostet und abfragt
Die Kommentare sind ziemlich zynisch, aber ich persönlich fand das wirklich interessant
Es erinnert mich daran, wie ich in meinem ersten Job PostGIS und standortbasierte Suche zu einer Datenbank hinzugefügt habe. Damals basierte das auf Adressen und Postleitzahlen
Vor ziemlich langer Zeit habe ich http://www.hostip.info gebaut. Das war ein Dienst, der die Standorte von IP-Adressen gemeinschaftlich sammelte, nach dem Motto: „Ist diese Schätzung falsch? Bitte korrigieren“
Als ich zuletzt nachgesehen habe, vermutlich vor etwa 10 Jahren, waren die Länder fast perfekt, die Regionen lückenhaft, und die Städte waren besser als ein Münzwurf. Alle Daten sind kostenlos
Ich weiß nicht, ob es noch auf der Website ist, aber es gab auch einen rotierenden 3D-Würfel, der bekannte Adressen oder aktuelle Abfragen anzeigen sollte. x, y und z waren die ersten drei Oktette der Adresse, und nach Gruppen wie Land oder Kontinent wurden unterschiedliche Farben verwendet
Das Ganze ist so alt, dass es als Java-Applet geschrieben war. Wenn ich es heute neu bauen würde, würde ich wohl WebGL verwenden
Ich habe es vor langer Zeit verkauft, aber unter der Bedingung, dass die Daten immer kostenlos bleiben müssen. Zuerst hielt ich das Angebot per E-Mail für Betrug und glaubte nicht daran, aber über escrow.com lief alles gut, und ich denke, beide Seiten waren am Ende zufrieden. Das ist jetzt fast 20 Jahre her
Sieht aus wie eine moderne Version des zuvor erwähnten ping-basierten GeoIP: https://github.com/Ne00n/yammdb
Ich bin an Vorschlägen interessiert, wie man Data-Center-IPs zumindest sehr grob geografisch lokalisieren kann
Ich analysiere traceroute-Daten und kenne Start- und Endpunkt, aber interessant sind die Zwischenstrecken
Zum Beispiel lässt sich aus Flughafen-Codes in Node-Hostnames ein Teil der Informationen ableiten
Unter der Annahme, dass ein bestimmter Node-Zustand nicht schlecht ist, dürfte sich die Position auch über die durchschnittliche RTT-Zeit abschätzen lassen
Problematische Beispiel-IPs sind 193.142.125.129, 129.250.6.113 und 129.250.3.250. Sie tauchen in britischen traceroutes auf und ich gehe davon aus, dass sie in London sind, aber die Geolocation-Ergebnisse sind über die ganze Welt verstreut
Die traceroutes zu diesen IPs lassen es so aussehen, als würde das Netzwerk nach London gehen
Die Google-IP antwortet nicht auf Ping, die NTT/Verio-Seite aber schon. Wenn man von London-basiertem Hosting aus pingt, ist die Wahrscheinlichkeit hoch, Antwortzeiten im einstelligen Millisekundenbereich zu bekommen; damit ließe sich eine obere Grenze für die Entfernung von London bestimmen
Wenn man außerdem von anderem Hosting innerhalb Großbritanniens und von der anderen Seite des Ärmelkanals pingt, kann man prüfen, ob der niedrigste Ping von London-Hosting kommt. Allerdings kann die Konnektivität lediglich über London laufen, während der tatsächliche Standort anderswo ist; vollständig wissen lässt es sich also nicht
Man sollte es auch von anderen Messpunkten aus prüfen, um auszuschließen, dass es Anycast ist. Wenn man 8.8.8.8 aus den meisten Netzen weltweit anpingt, landet man an einem nahegelegenen Ort; bei diesen IPs geht die traceroute aber selbst aus der Region Seattle nach London, daher sind sie zumindest derzeit wahrscheinlich kein Anycast
Wenn man kein Hosting weltweit hat, kann man nach öffentlichen Looking Glasses gut angebundener Netze suchen, über die man solche Pings gelegentlich ausführen kann
Dort heißt es: „Ziel von TULIP ist es, den Standort eines Zielhosts zu bestimmen, der durch IP-Namen oder -Adresse identifiziert wird, indem Ping-RTT-Verzögerungsmessungen von Referenz-Landmark-Hosts mit gut bekannten Standorten zum Ziel verwendet werden“
https://tulip.slac.stanford.edu/
Der veröffentlichte Endpoint scheint aber tot zu sein
RTTs von RIPE-Atlas-Probes mit bekannten Standorten zu diesen IPs zu erhalten, kommt der genannten Idee nahe und ist vermutlich ohnehin die beste Methode
Solche BGP-Announcements gehen von verschiedenen Standorten zu unterschiedlichen Upstream-ISPs
Wenn der Upstream eines Announcements von einem bestimmten Standort ein regionaler ISP ist, kann man bis zu einem gewissen Grad vermuten, dass sich das Data-Center in dieser Region befindet. Handelt es sich aber um einen Tier-1-ISP mit direkter weltweiter Konnektivität, ist selbst diese Schätzung schwierig
BGP-Beziehungen lassen sich in Looking-Glass-Tools wie bgp.tools ansehen: https://bgp.tools/prefix/193.142.125.0/24#connectivity
Wenn man von mehreren Probes mit bekannten Standorten weltweit traceroute ausführen kann, lässt sich anhand fester IPs der Interfaces von Zwischenroutern triangulieren
Nutzt man jedoch ein CDN wie Cloudflare, annonciert den eigenen IP-Block von über 200 PoPs aus und lässt den Traffic über deren privates Netz zu Data-Centern weltweit laufen, bricht auch diese Methode zusammen