{"id":150623,"date":"2025-12-04T23:12:00","date_gmt":"2025-12-04T21:12:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-geoip-0-1-0-realizaczii-rest-api-dlya-opredeleniya-mestopolozheniya-po-ip"},"modified":"2025-12-04T23:12:00","modified_gmt":"2025-12-04T21:12:01","slug":"vypusk-geoip-0-1-0-realizaczii-rest-api-dlya-opredeleniya-mestopolozheniya-po-ip","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-geoip-0-1-0-realizaczii-rest-api-dlya-opredeleniya-mestopolozheniya-po-ip","title":{"rendered":"Lansare geoip 0.1.0, implementarea REST API pentru determinarea loca\u021biei pe baza IP-ului.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A avut loc prima lansare a proiectului geoip, care implementeaz\u0103 un serviciu pentru ob\u021binerea de informa\u021bii despre loca\u021bia adreselor IP prin REST API. Proiectul este orientat spre simplificarea integr\u0103rii func\u021bionalit\u0103\u021bii GeoIP \u00een diverse aplica\u021bii, eliber\u00e2nd dezvoltatorul de nevoia de a gestiona actualiz\u0103rile bazelor de date \u0219i de a lucra cu formatul MMDB. Codul este scris \u00een limbajul Rust \u0219i este distribuit sub licen\u021ba MIT. Este suportat \u00een Linux \u0219i macOS, precum \u0219i \u00een alte sisteme de operare de tip UNIX.    <\/p>\n<p>Func\u021bionalit\u0103\u021bile principale ale serviciului:  <\/p>\n<ul>\n<li class=\"l\"> Performan\u021b\u0103 ridicat\u0103 \u0219i consum sc\u0103zut de memorie, datorit\u0103 utiliz\u0103rii unui limbaj compilat \u00een cod ma\u0219in\u0103 f\u0103r\u0103 colector de gunoi.\n<li class=\"l\"> Furnizarea de informa\u021bii despre adresa IP (\u021bar\u0103, ora\u0219, cod po\u0219tal, coordonate, operator de telecomunica\u021bii etc.) prin REST API pe baza datelor MaxMind GeoLite2 (gratuit) \u0219i MaxMind GeoIP2 (contra cost).\n<li class=\"l\"> Determinarea utilizatorului curent <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/lir\/ipv4\/\"   title=\"adrese IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"741\">adrese IP<\/a> (disponibil\u0103 printr-un endpoint separat; parametrul ip al endpoint-ului principal este op\u021bional).\n<li class=\"l\">  Actualiz\u0103ri automate configurabile ale bazelor de date (at\u00e2t de pe resursele oficiale MaxMind utiliz\u00e2nd Account ID \u0219i Licence Key, c\u00e2t \u0219i de pe un URL personalizat cu suport pentru autorizare; se poate specifica intervalul de verificare a actualiz\u0103rilor).\n<li class=\"l\">  Interfa\u021b\u0103 web pentru trimiterea manual\u0103 a cererilor, inclusiv suport op\u021bional pentru afi\u0219are pe harta OpenStreetMap.  <center><img decoding=\"async\" alt=\"Lansare geoip 0.1.0, implementarea REST API pentru determinarea loca\u021biei pe baza IP-ului.\" src=\"\/wp-content\/uploads\/2025\/12\/d2489b99ef95e337ca6ecf1cea1c2347.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\">  Pentru toate rezultatele care con\u021bin c\u00e2mpul timezone, se genereaz\u0103 automat un c\u00e2mp suplimentar posix_timezone (de exemplu, Europe\/Paris se transform\u0103 \u00een CET-1CEST,M3.5.0,M10.5.0\/3). Aceasta asigur\u0103 configurarea automat\u0103 a fusului orar pe dispozitivele \u00eencorporate (de exemplu, ESP32 \u0219i alte \u021binte newlib f\u0103r\u0103 tzdata \u00eencorporat). Aceast\u0103 func\u021bionalitate este unic\u0103 \u0219i nu se reg\u0103se\u0219te \u00een solu\u021bii analogice.\n<li class=\"l\"> Actualizarea automat\u0103 a bazei de date a fusurilor orare (intervalul, sursa \u0219i autorizarea sunt configurabile; \u00een mod implicit se utilizeaz\u0103 site-ul oficial IANA). Atunci c\u00e2nd actualiz\u0103rile sunt dezactivate, se aplic\u0103 baza de date sistemic\u0103.\n<li class=\"l\">  Posibilitatea de a \u00eenc\u0103rca arhivele actuale ale bazelor de date prin HTTP direct de la serviciu (ceea ce permite utilizarea unei singure instan\u021be ca proxy surs\u0103 pentru altele \u0219i reduce consumul cotei MaxMind).\n<li class=\"l\"> Suport pentru protejarea endpoint-urilor cu un API key op\u021bional.\n<li class=\"l\">  Exist\u0103 o specifica\u021bie OpenAPI \u0219i un Swagger UI integrat pentru a facilita integrarea cu propriile proiecte.\n<li class=\"l\"> Furnizarea unei imagini Docker gata de utilizare pentru desf\u0103\u0219urarea rapid\u0103:    docker run \\  \t-e MAXMIND_ACCOUNT_ID=XXXX \\  \t-e MAXMIND_LICENCE_KEY=YYYY \\  \t-e OSM_TILES_URL=\"https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png\" \\  # op\u021bional  \t-v geoip_data:\/data \\  \t-p 8080:8080 \\  \tghcr.io\/quoi-dev\/geoip:latest    <\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=64372\">opennet.ro<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 geoip, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 REST API. \u041f\u0440\u043e\u0435\u043a\u0442 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 GeoIP-\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c MMDB. \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 Linux \u0438 macOS, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":150624,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-150623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 geoip, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 REST API.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-geoip-0-1-0-realizaczii-rest-api-dlya-opredeleniya-mestopolozheniya-po-ip\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a geoip 0.1.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 REST API \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e IP | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 geoip, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 REST API.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-geoip-0-1-0-realizaczii-rest-api-dlya-opredeleniya-mestopolozheniya-po-ip\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-12-04T21:12:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-12-04T21:12:01+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lansarea geoip 0.1.0, implementarea REST API pentru determinarea localiz\u0103rii pe baza IP | ProHoster","description":"A avut loc prima lansare a proiectului geoip, care implementeaz\u0103 un serviciu pentru ob\u021binerea informa\u021biilor despre localizarea adreselor IP prin REST API.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-geoip-0-1-0-realizaczii-rest-api-dlya-opredeleniya-mestopolozheniya-po-ip","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a geoip 0.1.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 REST API \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e IP | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 geoip, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 REST API.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-geoip-0-1-0-realizaczii-rest-api-dlya-opredeleniya-mestopolozheniya-po-ip","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-12-04T21:12:01+00:00","article:modified_time":"2025-12-04T21:12:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"150623","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-08 20:36:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 16:25:22","updated":"2026-02-08 20:36:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/150623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=150623"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/150623\/revisions"}],"predecessor-version":[{"id":157932,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/150623\/revisions\/157932"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/150624"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=150623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=150623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=150623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}