A megvalósult a geoip projekt első kiadása, amely egy szolgáltatást kínál az IP-címek földrajzi helyzetének REST API-n keresztüli meghatározására. A projekt célja a GeoIP-funkcionalitás integrálásának egyszerűsítése különböző alkalmazásokba, így felszabadítva a fejlesztők számára a szükségét annak, hogy maguk kezeljék az adatbázisok frissítését és dolgozzanak az MMDB formátummal. A kód Rust nyelven íródott és MIT licenc alatt terjesztik. Támogatja a Linux és macOS, valamint más UNIX-szerű rendszereken való működést.
A szolgáltatás főbb lehetőségei:
- Magas teljesítmény és alacsony memóriafogyasztás, a gépi kódra fordítható nyelv, amely nem használ szemétgyűjtőt.
- IP-cím információk (ország, város, irányítószám, koordináták, szolgáltató stb.) nyújtása REST API-n keresztül a MaxMind GeoLite2 (ingyenes) és MaxMind GeoIP2 (fizetős) adatai alapján.
- Jelenlegi IP address felhasználó meghatározása (külön végpont segítségével; az alap végpont ip paramétere opcionális).
- Testreszabható automatikus adatbázis-frissítések (mind a MaxMind hivatalos forrásaiból az Account ID és Licence Key használatával, mind egy felhasználói URL-ből hitelesítéssel; beállítható a frissítések ellenőrzési intervalluma).
- Webes felület kézi lekérések küldésére, beleértve az OpenStreetMap térképen való megjelenítés opcionális támogatását.

- Minden olyan eredményhez, amely tartalmazza a timezone mezőt, automatikusan létrejön egy további posix_timezone mező (például, Europe/Paris átalakul CET-1CEST,M3.5.0,M10.5.0/3). Ez biztosítja az időzóna automatikus konfigurálását beágyazott eszközökön (például ESP32 és más newlib célpontok, amelyek nem rendelkeznek beépített tzdata-val). Ez a funkció egyedülálló és hiányzik a hasonló megoldásokból.
- Az időzónák adatbázisának automatikus frissítése (intervallum, forrás és hitelesítés beállítható; alapértelmezés szerint az IANA hivatalos weboldala használható). A frissítések leállítása esetén a rendszer alap adatbázisát alkalmazza.
- Friss adatbázis-archívumok HTTP-n keresztül való letöltésének lehetősége közvetlenül a szolgáltatásból (ami lehetővé teszi, hogy egy példányt proxy forrásként használjunk mások számára, ezzel csökkentve a MaxMind kvóta felhasználását).
- Az végpontok védelmének támogatása opcionális API-kulccsal.
- OpenAPI-szabvány és beépített Swagger UI a projektekhez való egyszerű integrációhoz.
- Kész Docker-kép biztosítása a gyors telepítéshez: 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" \ # opcionális -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Forrás: opennet.ru

