Prima versiune a proiectului geoip, un serviciu pentru recuperarea informațiilor despre locația adresei IP prin intermediul unui API REST, a fost lansată. Proiectul își propune să simplifice integrarea funcționalității GeoIP în diverse aplicații, eliberând dezvoltatorul de nevoia de a gestiona manual actualizările bazei de date și de a lucra cu formatul MMDB. Codul este scris în Rust și distribuit sub licența MIT. Acesta acceptă... Linux и macOS, precum și alte sisteme de tip UNIX.
Opțiuni de bază pentru servicii:
- Performanță ridicată și consum redus de memorie datorită utilizării unui limbaj compilat nativ, fără un colector de gunoi.
- Furnizarea de informații despre adresa IP (țară, oraș, cod poștal, coordonate, operator de telecomunicații etc.) prin intermediul API-ului REST, bazat pe datele MaxMind GeoLite2 (gratuit) și MaxMind GeoIP2 (cu plată).
- Definiția curentului adrese IP utilizator (disponibil printr-un endpoint separat; parametrul ip al endpoint-ului principal este opțional).
- Actualizări automate configurabile ale bazei de date (atât din resursele oficiale MaxMind folosind ID-ul contului și cheia de licență, cât și dintr-o adresă URL personalizată cu suport de autorizare; puteți specifica intervalul de verificare a actualizărilor).
- O interfață web pentru trimiterea manuală a interogărilor, inclusiv suport opțional pentru afișarea pe OpenStreetMap.

- Pentru toate rezultatele care conțin un câmp de fus orar, se generează automat un câmp suplimentar posix_timezone (de exemplu, Europe/Paris este convertit în CET-1CEST, M3.5.0, M10.5.0/3). Aceasta permite configurarea automată a fusului orar pe dispozitivele integrate (de exemplu, ESP32 și alte ținte newlib fără tzdata încorporate). Această caracteristică este unică și nu este disponibilă în soluții similare.
- Actualizări automate ale bazei de date cu fus orar (intervalul, sursa și autorizarea sunt configurabile; site-ul oficial IANA este utilizat în mod implicit). Dacă actualizările sunt dezactivate, este utilizată baza de date a sistemului.
- Posibilitatea de a descărca arhivele bazei de date curente prin HTTP direct din serviciu (ceea ce permite ca o instanță să fie utilizată ca sursă proxy pentru altele și reduce consumul de cotă MaxMind).
- Suport pentru protecția endpoint-urilor folosind o cheie API opțională.
- Disponibilitatea specificației OpenAPI și a interfeței Swagger încorporate pentru o integrare ușoară cu proiectele dvs.
- Furnizarea unei imagini Docker gata făcute pentru implementare rapidă: 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» \ # opțional -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Sursa: opennet.ru

