Выпуск geoip 0.1.0, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ REST API для опрСдСлСния мСстополоТСния ΠΏΠΎ IP

Бостоялся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° geoip, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ сСрвис для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ мСстополоТСнии IP-адрСсов Ρ‡Π΅Ρ€Π΅Π· REST API. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ GeoIP-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прилоТСния, освобоТдая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ нСобходимости ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ обновлСниями Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ MMDB. Код написан Π½Π° языкС Rust ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π² Linux ΠΈ macOS, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности сСрвиса:

  • Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти, благодаря использованию ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ языка Π±Π΅Π· сборoΡ‰ΠΈΠΊΠ° мусора.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± IP-адрСсС (страна, Π³ΠΎΡ€ΠΎΠ΄, ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ индСкс, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ связи ΠΈ Π΄Ρ€.) Ρ‡Π΅Ρ€Π΅Π· REST API Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… MaxMind GeoLite2 (бСсплатно) ΠΈ MaxMind GeoIP2 (ΠΏΠ»Π°Ρ‚Π½ΠΎ).
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ IP-адрСса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (доступно Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ эндпойнт; ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ip основного эндпойнта являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ).
  • НастраиваСмыС автоматичСскиС обновлСния Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠ°ΠΊ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… рСсурсов MaxMind с использованиСм Account ID ΠΈ Licence Key, Ρ‚Π°ΠΊ ΠΈ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ URL с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ).
  • Π’Π΅Π±-интСрфСйс для Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запросов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ отобраТСния Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ OpenStreetMap.
     Выпуск geoip 0.1.0, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ REST API для опрСдСлСния мСстополоТСния ΠΏΠΎ IP
  • Для всСх Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², содСрТащих ΠΏΠΎΠ»Π΅ timezone, автоматичСски формируСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ posix_timezone (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Europe/Paris прСобразуСтся Π² CET-1CEST,M3.5.0,M10.5.0/3). Π­Ρ‚ΠΎ обСспСчиваСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ часового пояса Π½Π° встраиваСмых устройствах (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ESP32 ΠΈ ΠΈΠ½Ρ‹Ρ… Ρ‚Π°Ρ€Π³Π΅Ρ‚Π°Ρ… newlib Π±Π΅Π· встроСнной tzdata). Данная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ являСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ отсутствуСт Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ….
  • АвтоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… часовых поясов (ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π», источник ΠΈ авторизация Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ; ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт IANA). ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ примСняСтся систСмная Π±Π°Π·Π°.
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ HTTP нСпосрСдствСнно с сСрвиса (Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ экзСмпляр Π² качСствС прокси-источника для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈ ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒ расход ΠΊΠ²ΠΎΡ‚Ρ‹ MaxMind).
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ эндпойнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ API-ΠΊΠ»ΡŽΡ‡Π°.
  • НаличиС OpenAPI-спСцификации ΠΈ встроСнного Swagger UI для облСгчСния ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ со своими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Docker-ΠΎΠ±Ρ€Π°Π·Π° для быстрого развСртывания: 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Β» \ # Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

author avatar
ProHoster ΠšΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚, ВСхничСский спСциалист
A technical specialist at ProHoster with over six years of experience in server administration, VPN solutions, and network security. I manage infrastructure setup and support, monitor service stability, and implement solutions to protect client data. I also contribute to performance optimization and compliance with modern security and privacy requirements.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ