Die erste Veröffentlichung des GeoIP-Projekts fand statt, das einen Service zur Bereitstellung von Standortinformationen für IP-Adressen über REST-API implementiert. Das Projekt zielt darauf ab, die Integration der GeoIP-Funktionalität in verschiedene Anwendungen zu vereinfachen, indem es den Entwickler von der Notwendigkeit befreit, die Datenbankaktualisierungen selbst zu verwalten und mit dem MMDB-Format zu arbeiten. Der Code ist in Rust geschrieben und wird unter der MIT-Lizenz veröffentlicht. Es wird die Unterstützung für Linux und macOS sowie andere UNIX-ähnliche Systeme gewährleistet.
Hauptfunktionen des Dienstes:
- Hohe Leistung und geringer Speicherverbrauch durch die Verwendung einer kompilierbaren, maschinennahe Sprache ohne Garbage Collector.
- Bereitstellung von Informationen über die IP-Adresse (Land, Stadt, Postleitzahl, Koordinaten, Anbieter und mehr) über die REST-API basierend auf Daten von MaxMind GeoLite2 (kostenlos) und MaxMind GeoIP2 (kostenpflichtig).
- Bestimmung des aktuellen IP-Adressen Benutzers (verfügbar über einen separaten Endpunkt; der Parameter ip des Hauptendpunkts ist optional).
- Anpassbare automatische Datenbankaktualisierungen (sowohl von offiziellen MaxMind-Ressourcen unter Verwendung von Account-ID und Lizenzschlüssel als auch von benutzerdefinierten URLs mit Unterstützung für Autorisierung; Intervall zur Überprüfung von Aktualisierungen kann festgelegt werden).
- Weboberfläche zur manuellen Anforderung von Anfragen, einschließlich optionaler Unterstützung für die Anzeige auf OpenStreetMap.

- Für alle Ergebnisse, die das Feld timezone enthalten, wird automatisch ein zusätzliches Feld posix_timezone generiert (z.B. Europe/Paris wird zu CET-1CEST,M3.5.0,M10.5.0/3). Dies ermöglicht die automatische Konfiguration der Zeitzone auf eingebetteten Geräten (z.B. ESP32 und anderen Targets von newlib ohne integrierte tzdata). Diese Funktion ist einzigartig und fehlt in vergleichbaren Lösungen.
- Automatische Aktualisierung der Zeitzonendatenbank (Intervall, Quelle und Autorisierung sind konfigurierbar; standardmäßig wird die offizielle IANA-Website verwendet). Bei Deaktivierung der Aktualisierungen wird die Systemdatenbank verwendet.
- Möglichkeit, aktuelle Datenbankarchive über HTTP direkt vom Dienst herunterzuladen (was es ermöglicht, eine Instanz als Proxy-Quelle für andere zu verwenden und den MaxMind-Kontingentverbrauch zu reduzieren).
- Unterstützung der Endpunktsicherheit durch einen optionalen API-Schlüssel.
- Vorhandensein einer OpenAPI-Spezifikation und integrierter Swagger UI zur Erleichterung der Integration in Ihre Projekte.
- Bereitstellung eines vorgefertigten Docker-Images für eine schnelle Bereitstellung: docker run \ -e MAXMIND_ACCOUNT_ID=XXXX \ -e MAXMIND_LICENCE_KEY=YYYY \ -e OSM_TILES_URL="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" \ # optional -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Quelle: opennet.ru

