De eerste release van het geoip-project heeft plaatsgevonden, dat een service implementeert voor het verkrijgen van informatie over de locatie van IP-adressen via REST API. Het project is gericht op het vereenvoudigen van de integratie van GeoIP-functionaliteit in verschillende applicaties, waardoor ontwikkelaars niet zelf de database-updates hoeven te beheren of met het MMDB-formaat hoeven te werken. De code is geschreven in de programmeertaal Rust en wordt verspreid onder de MIT-licentie. Het ondersteunt werking op Linux en macOS, evenals andere UNIX-achtige systemen.
Belangrijkste functionaliteiten van de service:
- Hoge prestaties en een laag geheugenverbruik, dankzij het gebruik van een gecompileerde programmeertaal zonder garbage collector.
- Verstrekking van informatie over het IP-adres (land, stad, postcode, coördinaten, telecomoperator, enz.) via REST API op basis van gegevens van MaxMind GeoLite2 (gratis) en MaxMind GeoIP2 (betaald).
- Bepaling van de huidige IP-adressen gebruiker (beschikbaar via een aparte endpoint; de parameter ip van de hoofdendpoint is optioneel).
- Configureerbare automatische database-updates (zowel van officiële MaxMind-bronnen met Account ID en License Key als van een gebruikers-URL met ondersteuning voor autorisatie; het instellen van de controlefrequentie is mogelijk).
- Web-interface voor handmatig verzenden van verzoeken, inclusief optionele ondersteuning voor weergave op de kaart van OpenStreetMap.

- Voor alle resultaten die het veld timezone bevatten, wordt automatisch een extra veld posix_timezone aangemaakt (bijvoorbeeld Europe/Paris wordt CEST-1CET,M3.5.0,M10.5.0/3). Dit zorgt voor automatische configuratie van de tijdzone op inbouwapparaten (bijv. ESP32 en andere newlib-doelen zonder ingebouwde tzdata). Deze functionaliteit is uniek en ontbreekt in vergelijkbare oplossingen.
- Automatische update van de database voor tijdzones (interval, bron en autorisatie zijn configureerbaar; standaard wordt de officiële IANA-website gebruikt). Bij uitschakeling van updates wordt de systeemdatabase gebruikt.
- Mogelijkheid om actuele archieven van databases via HTTP rechtstreeks van de service te downloaden (wat het mogelijk maakt om één instantie als proxy-bron voor anderen te gebruiken en het verbruik van de MaxMind-quotum te verlagen).
- Ondersteuning voor endpointbescherming met een optionele API-sleutel.
- Beschikbaarheid van de OpenAPI-specificatie en ingebouwde Swagger UI om integratie met uw projecten te vergemakkelijken.
- Levering van een kant-en-klaar Docker-image voor snelle implementatie: 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» \ # optioneel -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Bron: opennet.ru

