Version geoip 0.1.0, Implementierung der REST-API zur Bestimmung des Standorts anhand der IP

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.
    Version geoip 0.1.0, Implementierung der REST-API zur Bestimmung des Standorts anhand der IP
  • 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

60GB SSD 8Gb DDR4