Die erste Veröffentlichung des GeoIP-Projekts fand statt, das einen Dienst zur Ermittlung von Standortinformationen von IP-Adressen über eine REST-API implementiert. Das Projekt zielt darauf ab, die Integration der GeoIP-Funktionalität in verschiedene Anwendungen zu vereinfachen und den Entwickler von der Notwendigkeit zu befreien, selbst Datenbankaktualisierungen zu verwalten und mit dem MMDB-Format zu arbeiten. Der Code ist in Rust geschrieben und steht unter der MIT-Lizenz. Es wird die Verwendung unter Linux und macOS sowie in anderen UNIX-ähnlichen Systemen unterstützt.
Die Hauptfunktionen des Dienstes:
- Hohe Leistung und niedriger Speicherverbrauch durch die Verwendung einer kompilierbaren Programmiersprache ohne Garbage Collector.
- Bereitstellung von Informationen über die IP-Adresse (Land, Stadt, Postleitzahl, Koordinaten, Anbieter usw.) über die REST-API auf Basis der 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 mit Verwendung der Kontonummer und Lizenzschlüssel als auch von benutzerdefinierten URLs mit Unterstützung für Authentifizierung; es kann ein Überprüfungsintervall für Updates angegeben werden).
- Weboberfläche zur manuellen Übermittlung von Anfragen, einschließlich optionaler Unterstützung für die Anzeige auf der OpenStreetMap-Karte.

- 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 gewährleistet eine automatische Konfiguration der Zeitzone auf eingebetteten Geräten (z. B. ESP32 und anderen Zielplattformen ohne integrierte tzdata). Diese Funktion ist einzigartig und nicht in ähnlichen Lösungen vorhanden.
- Automatische Aktualisierung der Zeitzonendatenbank (Intervall, Quelle und Authentifizierung sind konfigurierbar; standardmäßig wird die offizielle IANA-Website verwendet). Bei Deaktivierung der Updates 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 nutzen und den Verbrauch des MaxMind-Kontingents zu reduzieren).
- Unterstützung zum Schutz der Endpunkte durch einen optionalen API-Schlüssel.
- Vorhandensein einer OpenAPI-Spezifikation und integrierter Swagger UI zur Erleichterung der Integration in Ihre Projekte.
- Bereitstellung eines fertigen 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

