La premiĂšre version du projet geoip a Ă©tĂ© publiĂ©e, mettant en Ćuvre un service pour obtenir des informations sur la localisation des adresses IP via une API REST. Le projet vise Ă simplifier l'intĂ©gration des fonctionnalitĂ©s GeoIP dans diverses applications, libĂ©rant ainsi les dĂ©veloppeurs de la nĂ©cessitĂ© de gĂ©rer les mises Ă jour des bases de donnĂ©es et de travailler avec le format MMDB. Le code est Ă©crit en Rust et est distribuĂ© sous licence MIT. Il est pris en charge sur Linux, macOS et d'autres systĂšmes de type UNIX.
Fonctionnalités principales du service :
- Haute performance et faible consommation de mémoire, grùce à l'utilisation d'un langage compilé en code machine sans ramasse-miettes.
- Fourniture d'informations sur l'adresse IP (pays, ville, code postal, coordonnées, opérateur de télécommunication, etc.) via l'API REST basée sur les données MaxMind GeoLite2 (gratuit) et MaxMind GeoIP2 (payant).
- Détermination de l'actuel adresses IP utilisateur (disponible via un point de terminaison séparé ; le paramÚtre ip du point de terminaison principal est facultatif).
- Mise à jour automatique configurable des bases de données (à partir des ressources officielles de MaxMind en utilisant l'ID de compte et la clé de licence, ou à partir d'une URL utilisateur avec prise en charge de l'authentification ; il est possible de spécifier l'intervalle de vérification des mises à jour).
- Interface web pour l'envoi manuel de requĂȘtes, y compris un support optionnel pour l'affichage sur OpenStreetMap.

- Pour tous les résultats contenant le champ timezone, un champ supplémentaire posix_timezone est automatiquement généré (par exemple, Europe/Paris se transforme en CET-1CEST,M3.5.0,M10.5.0/3). Cela assure la configuration automatique du fuseau horaire sur les dispositifs embarqués (par exemple, ESP32 et d'autres cibles newlib sans tzdata intégré). Cette fonctionnalité est unique et absente dans des solutions similaires.
- Mise à jour automatique de la base de données des fuseaux horaires (l'intervalle, la source et l'authentification sont configurables ; par défaut, le site officiel de l'IANA est utilisé). En cas de désactivation des mises à jour, la base de données systÚme est appliquée.
- Possibilité de télécharger les archives actuelles des bases de données via HTTP directement depuis le service (ce qui permet d'utiliser une instance comme source proxy pour d'autres et de réduire la consommation de quota MaxMind).
- Support de la protection des points de terminaison via une clé API optionnelle.
- Disponibilité d'une spécification OpenAPI et d'une interface Swagger UI intégrée pour faciliter l'intégration avec vos projets.
- Fourniture d'une image Docker prĂȘte Ă l'emploi pour un dĂ©ploiement rapide : 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" \ # optionnel -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Source : opennet.ru

