{"id":15934453,"url":"https://github.com/ipinfo/erlang","last_synced_at":"2025-03-24T21:32:03.967Z","repository":{"id":51199278,"uuid":"187524454","full_name":"ipinfo/erlang","owner":"ipinfo","description":"Official Erlang library for IPinfo API","archived":false,"fork":false,"pushed_at":"2024-09-04T20:51:54.000Z","size":81,"stargazers_count":7,"open_issues_count":2,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-14T03:29:57.545Z","etag":null,"topics":["elixir","elixir-library","erlang","erlang-library"],"latest_commit_sha":null,"homepage":"","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ipinfo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-19T20:24:49.000Z","updated_at":"2024-09-04T20:51:59.000Z","dependencies_parsed_at":"2024-09-06T05:26:45.768Z","dependency_job_id":null,"html_url":"https://github.com/ipinfo/erlang","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipinfo%2Ferlang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipinfo%2Ferlang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipinfo%2Ferlang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipinfo%2Ferlang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipinfo","download_url":"https://codeload.github.com/ipinfo/erlang/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222012890,"owners_count":16916206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","elixir-library","erlang","erlang-library"],"created_at":"2024-10-07T03:03:07.745Z","updated_at":"2024-10-29T08:02:57.631Z","avatar_url":"https://github.com/ipinfo.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [\u003cimg src=\"https://ipinfo.io/static/ipinfo-small.svg\" alt=\"IPinfo\" width=\"24\"/\u003e](https://ipinfo.io/) IPinfo Erlang Client Library\n\n[![Hex.pm Version](https://img.shields.io/hexpm/v/ipinfo.svg)](https://hex.pm/packages/ipinfo)\n\n[![Build Status](https://github.com/ipinfo/erlang/workflows/CI/badge.svg)](https://github.com/ipinfo/erlang/actions)\n\nThis is the official Erlang/Elixir client library for the [IPinfo.io](https://ipinfo.io) IP data API, allowing you to look up your own IP address, or get any of the following details for an IP:\n\n- [IP geolocation data](https://ipinfo.io/ip-geolocation-api) (city, region, country, postal code, latitude, and longitude)\n- [ASN details](https://ipinfo.io/asn-api) (ISP or network operator, associated domain name, and type, such as business, hosting, or company)\n- [Company data](https://ipinfo.io/ip-company-api) (the name and domain of the business that uses the IP address)\n- [Carrier information](https://ipinfo.io/ip-carrier-api) (the name of the mobile carrier and MNC and MCC for that carrier if the IP is used exclusively for mobile traffic)\n\nCheck all the data we have for your IP address [here](https://ipinfo.io/what-is-my-ip).\n\n## Getting Started\n\nYou'll need an IPinfo API access token, which you can get by signing up for a free account at [https://ipinfo.io/signup](https://ipinfo.io/signup).\n\nThe free plan is limited to 50,000 requests per month, and doesn't include some of the data fields such as IP type and company data. To enable all the data fields and additional request volumes see [https://ipinfo.io/pricing](https://ipinfo.io/pricing).\n\n## Installation\n\nAdd this line to your application's `rebar.config`:\n\n```erlang\n{deps, [ipinfo]}.\n```\n\n## Usage\n\n```erlang\n1\u003e {ok, Ipinfo} = ipinfo:create(\"TOKEN\").\n{ok,#{'__struct__' =\u003e ipinfo,access_token =\u003e \u003c\u003c\"TOKEN\"\u003e\u003e,\n      base_url =\u003e \u003c\u003c\"https://ipinfo.io\"\u003e\u003e,cache =\u003e \u003c0.197.0\u003e,\n      continents =\u003e\n          #{\u003c\u003c\"PF\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"OC\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Oceania\"\u003e\u003e},\n            \u003c\u003c\"CV\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AF\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Africa\"\u003e\u003e},\n            \u003c\u003c\"CG\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AF\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Africa\"\u003e\u003e},\n            \u003c\u003c\"KZ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AS\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Asia\"\u003e\u003e},\n            \u003c\u003c\"VI\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NA\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"North America\"\u003e\u003e},\n            \u003c\u003c\"ML\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AF\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Africa\"\u003e\u003e},\n            \u003c\u003c\"AM\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AS\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Asia\"\u003e\u003e},\n            \u003c\u003c\"PN\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"OC\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Oceania\"\u003e\u003e},\n            \u003c\u003c\"FR\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"EU\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Europe\"\u003e\u003e},\n            \u003c\u003c\"MK\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"EU\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Europe\"\u003e\u003e},\n            \u003c\u003c\"NE\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AF\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Africa\"\u003e\u003e},\n            \u003c\u003c\"ID\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AS\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Asia\"\u003e\u003e},\n            \u003c\u003c\"QA\"\u003e\u003e =\u003e \n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AS\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Asia\"\u003e\u003e},\n            \u003c\u003c\"LC\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NA\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"North America\"\u003e\u003e},\n            \u003c\u003c\"BR\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"SA\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"South America\"\u003e\u003e},\n            \u003c\u003c\"DJ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AF\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Africa\"\u003e\u003e},\n            \u003c\u003c\"NU\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"OC\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Oceania\"\u003e\u003e},\n            \u003c\u003c\"BB\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NA\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"North America\"\u003e\u003e},\n            \u003c\u003c\"NZ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"OC\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Oceania\"\u003e\u003e},\n            \u003c\u003c\"MF\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NA\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"North America\"\u003e\u003e},\n            \u003c\u003c\"AS\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"OC\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Oceania\"\u003e\u003e},\n            \u003c\u003c\"IL\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AS\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Asia\"\u003e\u003e},\n            \u003c\u003c\"GH\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AF\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Africa\"\u003e\u003e},\n            \u003c\u003c\"SL\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AF\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Africa\"\u003e\u003e},\n            \u003c\u003c\"NI\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NA\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"North America\"\u003e\u003e},\n            \u003c\u003c\"ZM\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AF\"\u003e\u003e,\u003c\u003c\"name\"\u003e\u003e =\u003e \u003c\u003c\"Africa\"\u003e\u003e},...},\n      countries =\u003e\n          #{\u003c\u003c\"PF\"\u003e\u003e =\u003e \u003c\u003c\"French Polynesia\"\u003e\u003e,\n            \u003c\u003c\"CV\"\u003e\u003e =\u003e \u003c\u003c\"Cape Verde\"\u003e\u003e,\n            \u003c\u003c\"CG\"\u003e\u003e =\u003e \u003c\u003c\"Republic of the Congo\"\u003e\u003e,\n            \u003c\u003c\"KZ\"\u003e\u003e =\u003e \u003c\u003c\"Kazakhstan\"\u003e\u003e,\n            \u003c\u003c\"VI\"\u003e\u003e =\u003e \u003c\u003c\"U.S. Virgin Islands\"\u003e\u003e,\n            \u003c\u003c\"ML\"\u003e\u003e =\u003e \u003c\u003c\"Mali\"\u003e\u003e,\u003c\u003c\"AM\"\u003e\u003e =\u003e \u003c\u003c\"Armenia\"\u003e\u003e,\n            \u003c\u003c\"PN\"\u003e\u003e =\u003e \u003c\u003c\"Pitcairn\"\u003e\u003e,\u003c\u003c\"FR\"\u003e\u003e =\u003e \u003c\u003c\"France\"\u003e\u003e,\n            \u003c\u003c\"MK\"\u003e\u003e =\u003e \u003c\u003c\"Macedonia\"\u003e\u003e,\u003c\u003c\"NE\"\u003e\u003e =\u003e \u003c\u003c\"Niger\"\u003e\u003e,\n            \u003c\u003c\"ID\"\u003e\u003e =\u003e \u003c\u003c\"Indonesia\"\u003e\u003e,\u003c\u003c\"QA\"\u003e\u003e =\u003e \u003c\u003c\"Qatar\"\u003e\u003e,\n            \u003c\u003c\"LC\"\u003e\u003e =\u003e \u003c\u003c\"Saint Lucia\"\u003e\u003e,\u003c\u003c\"BR\"\u003e\u003e =\u003e \u003c\u003c\"Brazil\"\u003e\u003e,\n            \u003c\u003c\"DJ\"\u003e\u003e =\u003e \u003c\u003c\"Djibouti\"\u003e\u003e,\u003c\u003c\"NU\"\u003e\u003e =\u003e \u003c\u003c\"Niue\"\u003e\u003e,\n            \u003c\u003c\"BB\"\u003e\u003e =\u003e \u003c\u003c\"Barbados\"\u003e\u003e,\u003c\u003c\"NZ\"\u003e\u003e =\u003e \u003c\u003c\"New Zealand\"\u003e\u003e,\n            \u003c\u003c\"MF\"\u003e\u003e =\u003e \u003c\u003c\"Saint Martin\"\u003e\u003e,\n            \u003c\u003c\"AS\"\u003e\u003e =\u003e \u003c\u003c\"American Samoa\"\u003e\u003e,\u003c\u003c\"IL\"\u003e\u003e =\u003e \u003c\u003c\"Israel\"\u003e\u003e,\n            \u003c\u003c\"GH\"\u003e\u003e =\u003e \u003c\u003c\"Ghana\"\u003e\u003e,\u003c\u003c\"SL\"\u003e\u003e =\u003e \u003c\u003c\"Sierra Leone\"\u003e\u003e,\n            \u003c\u003c\"NI\"\u003e\u003e =\u003e \u003c\u003c\"Nicaragua\"\u003e\u003e,\u003c\u003c\"ZM\"\u003e\u003e =\u003e \u003c\u003c\"Zambia\"\u003e\u003e,...},\n      countries_currencies =\u003e\n          #{\u003c\u003c\"PF\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"XPF\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c226,130,163\u003e\u003e},\n            \u003c\u003c\"CV\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"CVE\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n            \u003c\u003c\"CG\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"XAF\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"FCFA\"\u003e\u003e},\n            \u003c\u003c\"KZ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"KZT\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c226,130,184\u003e\u003e},\n            \u003c\u003c\"VI\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"USD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n            \u003c\u003c\"ML\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"XOF\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"CFA\"\u003e\u003e},\n            \u003c\u003c\"AM\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"AMD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c214,143\u003e\u003e},\n            \u003c\u003c\"PN\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NZD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n            \u003c\u003c\"FR\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"EUR\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c226,130,172\u003e\u003e},\n            \u003c\u003c\"MK\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"MKD\"\u003e\u003e,\n                  \u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c208,180,208,181,208,189\u003e\u003e},\n            \u003c\u003c\"NE\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"XOF\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"CFA\"\u003e\u003e},\n            \u003c\u003c\"ID\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"IDR\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"Rp\"\u003e\u003e},\n            \u003c\u003c\"QA\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"QAR\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c239,183,188\u003e\u003e},\n            \u003c\u003c\"LC\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"XCD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n            \u003c\u003c\"BR\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"BRL\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"R$\"\u003e\u003e},\n            \u003c\u003c\"DJ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"DJF\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"Fdj\"\u003e\u003e},\n            \u003c\u003c\"NU\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NZD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n            \u003c\u003c\"BB\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"BBD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n            \u003c\u003c\"NZ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NZD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n            \u003c\u003c\"MF\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"EUR\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c226,130,172\u003e\u003e},\n            \u003c\u003c\"AS\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"USD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n            \u003c\u003c\"IL\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"ILS\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c226,130,170\u003e\u003e},\n            \u003c\u003c\"GH\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"GHS\"\u003e\u003e,\n                  \u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c71,72,226,130,181\u003e\u003e},\n            \u003c\u003c\"SL\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"SLL\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"Le\"\u003e\u003e},\n            \u003c\u003c\"NI\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"NIO\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"C$\"\u003e\u003e},\n            \u003c\u003c\"ZM\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"ZMK\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"ZK\"\u003e\u003e},...},\n      countries_flags =\u003e\n          #{\u003c\u003c\"PF\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,181,240,159,135,171\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F5 U+1F1EB\"\u003e\u003e},\n            \u003c\u003c\"CV\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,168,240,159,135,187\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1E8 U+1F1FB\"\u003e\u003e}, \n            \u003c\u003c\"CG\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,168,240,159,135,172\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1E8 U+1F1EC\"\u003e\u003e},\n            \u003c\u003c\"KZ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,176,240,159,135,191\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F0 U+1F1FF\"\u003e\u003e},\n            \u003c\u003c\"VI\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,187,240,159,135,174\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1FB U+1F1EE\"\u003e\u003e},\n            \u003c\u003c\"ML\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,178,240,159,135,177\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F2 U+1F1F1\"\u003e\u003e},\n            \u003c\u003c\"AM\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,166,240,159,135,178\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1E6 U+1F1F2\"\u003e\u003e},\n            \u003c\u003c\"PN\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,181,240,159,135,179\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F5 U+1F1F3\"\u003e\u003e},\n            \u003c\u003c\"FR\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,171,240,159,135,183\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1EB U+1F1F7\"\u003e\u003e},\n            \u003c\u003c\"MK\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,178,240,159,135,176\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F2 U+1F1F0\"\u003e\u003e},\n            \u003c\u003c\"NE\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,179,240,159,135,170\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F3 U+1F1EA\"\u003e\u003e},\n            \u003c\u003c\"ID\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,174,240,159,135,169\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1EE U+1F1E9\"\u003e\u003e},\n            \u003c\u003c\"QA\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,182,240,159,135,166\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F6 U+1F1E6\"\u003e\u003e},\n            \u003c\u003c\"LC\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,177,240,159,135,168\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F1 U+1F1E8\"\u003e\u003e},\n            \u003c\u003c\"BR\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,167,240,159,135,183\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1E7 U+1F1F7\"\u003e\u003e},\n            \u003c\u003c\"DJ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,169,240,159,135,175\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1E9 U+1F1EF\"\u003e\u003e},\n            \u003c\u003c\"NU\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,179,240,159,135,186\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F3 U+1F1FA\"\u003e\u003e},\n            \u003c\u003c\"BB\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,167,240,159,135,167\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1E7 U+1F1E7\"\u003e\u003e},\n            \u003c\u003c\"NZ\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,179,240,159,135,191\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F3 U+1F1FF\"\u003e\u003e},\n            \u003c\u003c\"MF\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,178,240,159,135,171\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F2 U+1F1EB\"\u003e\u003e},\n            \u003c\u003c\"AS\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,166,240,159,135,184\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1E6 U+1F1F8\"\u003e\u003e},\n            \u003c\u003c\"IL\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,174,240,159,135,177\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1EE U+1F1F1\"\u003e\u003e},\n            \u003c\u003c\"GH\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,172,240,159,135,173\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1EC U+1F1ED\"\u003e\u003e},\n            \u003c\u003c\"SL\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,184,240,159,135,177\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F8 U+1F1F1\"\u003e\u003e},\n            \u003c\u003c\"NI\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,179,240,159,135,174\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1F3 U+1F1EE\"\u003e\u003e},\n            \u003c\u003c\"ZM\"\u003e\u003e =\u003e\n                #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,191,240,159,135,178\u003e\u003e,\n                  \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1FF U+1F1F2\"\u003e\u003e},...},\n      country_flag_base_url =\u003e\n          \u003c\u003c\"https://cdn.ipinfo.io/static/images/countries-flags/\"\u003e\u003e, \n      eu_countries =\u003e\n          [\u003c\u003c\"IE\"\u003e\u003e,\u003c\u003c\"AT\"\u003e\u003e,\u003c\u003c\"LT\"\u003e\u003e,\u003c\u003c\"LU\"\u003e\u003e,\u003c\u003c\"LV\"\u003e\u003e,\u003c\u003c\"DE\"\u003e\u003e,\n           \u003c\u003c\"DK\"\u003e\u003e,\u003c\u003c\"SE\"\u003e\u003e,\u003c\u003c\"SI\"\u003e\u003e,\u003c\u003c\"SK\"\u003e\u003e,\u003c\u003c\"CZ\"\u003e\u003e,\u003c\u003c\"CY\"\u003e\u003e,\n           \u003c\u003c\"NL\"\u003e\u003e,\u003c\u003c\"FI\"\u003e\u003e,\u003c\u003c\"FR\"\u003e\u003e,\u003c\u003c\"MT\"\u003e\u003e,\u003c\u003c\"ES\"\u003e\u003e,\u003c\u003c\"IT\"\u003e\u003e,\n           \u003c\u003c\"EE\"\u003e\u003e,\u003c\u003c\"PL\"\u003e\u003e,\u003c\u003c\"PT\"\u003e\u003e,\u003c\u003c\"HU\"\u003e\u003e,\u003c\u003c\"HR\"\u003e\u003e,\u003c\u003c\"GR\"\u003e\u003e,\n           \u003c\u003c\"RO\"\u003e\u003e,\u003c\u003c...\u003e\u003e|...],\n      timeout =\u003e 5000}}\n2\u003e {ok, Details} = ipinfo:details(Ipinfo, \u003c\u003c\"8.8.8.8\"\u003e\u003e).\n{ok,#{city =\u003e \u003c\u003c\"Mountain View\"\u003e\u003e,country =\u003e \u003c\u003c\"US\"\u003e\u003e,\n      country_currency =\u003e\n          #{\u003c\u003c\"code\"\u003e\u003e =\u003e \u003c\u003c\"USD\"\u003e\u003e,\u003c\u003c\"symbol\"\u003e\u003e =\u003e \u003c\u003c\"$\"\u003e\u003e},\n      country_flag =\u003e\n          #{\u003c\u003c\"emoji\"\u003e\u003e =\u003e \u003c\u003c240,159,135,186,240,159,135,184\u003e\u003e,\n            \u003c\u003c\"unicode\"\u003e\u003e =\u003e \u003c\u003c\"U+1F1FA U+1F1F8\"\u003e\u003e},\n      country_flag_url =\u003e\n          \u003c\u003c\"https:/cdn.ipinfo.io/static/images/countries-flags/US.svg\"\u003e\u003e,\n      country_name =\u003e \u003c\u003c\"United States\"\u003e\u003e,\n      hostname =\u003e \u003c\u003c\"dns.google\"\u003e\u003e,ip =\u003e \u003c\u003c\"8.8.8.8\"\u003e\u003e,\n      is_eu =\u003e false,latitude =\u003e \u003c\u003c\"37.4056\"\u003e\u003e,\n      loc =\u003e \u003c\u003c\"37.4056,-122.0775\"\u003e\u003e,longitude =\u003e \u003c\u003c\"-122.0775\"\u003e\u003e,\n      org =\u003e \u003c\u003c\"AS15169 Google LLC\"\u003e\u003e,\n      \u003c\u003c\"abuse\"\u003e\u003e =\u003e\n          #{address =\u003e\n                \u003c\u003c\"US, CA, Mountain View, 1600 Amphitheatre Parkway, 94043\"\u003e\u003e,\n            country =\u003e \u003c\u003c\"US\"\u003e\u003e,email =\u003e \u003c\u003c\"network-abuse@google.com\"\u003e\u003e,\n            name =\u003e \u003c\u003c\"Abuse\"\u003e\u003e,\u003c\u003c\"network\"\u003e\u003e =\u003e \u003c\u003c\"8.8.8.0/24\"\u003e\u003e,\n            \u003c\u003c\"phone\"\u003e\u003e =\u003e \u003c\u003c\"+1-650-253-0000\"\u003e\u003e},\n      \u003c\u003c\"anycast\"\u003e\u003e =\u003e true,\n      \u003c\u003c\"asn\"\u003e\u003e =\u003e\n          #{domain =\u003e \u003c\u003c\"google.com\"\u003e\u003e,name =\u003e \u003c\u003c\"Google LLC\"\u003e\u003e,\n            type =\u003e \u003c\u003c\"hosting\"\u003e\u003e,\u003c\u003c\"asn\"\u003e\u003e =\u003e \u003c\u003c\"AS15169\"\u003e\u003e,\n            \u003c\u003c\"route\"\u003e\u003e =\u003e \u003c\u003c\"8.8.8.0/24\"\u003e\u003e},\n      \u003c\u003c\"company\"\u003e\u003e =\u003e\n          #{domain =\u003e \u003c\u003c\"google.com\"\u003e\u003e,name =\u003e \u003c\u003c\"Google LLC\"\u003e\u003e,\n            type =\u003e \u003c\u003c\"hosting\"\u003e\u003e},\n      \u003c\u003c\"domains\"\u003e\u003e =\u003e\n          #{ip =\u003e \u003c\u003c\"8.8.8.8\"\u003e\u003e,total =\u003e 13737,\n            \u003c\u003c\"domains\"\u003e\u003e =\u003e\n                [\u003c\u003c\"bits-hyderabad.ac.in\"\u003e\u003e,\u003c\u003c\"grandpashabet1203.com\"\u003e\u003e,\n                 \u003c\u003c\"grandpashabet1204.com\"\u003e\u003e,\u003c\u003c\"itempurl.com\"\u003e\u003e,\n                 \u003c\u003c\"apkplz.org\"\u003e\u003e]},\n      \u003c\u003c\"postal\"\u003e\u003e =\u003e \u003c\u003c\"94043\"\u003e\u003e,\n      \u003c\u003c\"privacy\"\u003e\u003e =\u003e\n          #{proxy =\u003e false,relay =\u003e false,service =\u003e \u003c\u003c\u003e\u003e,\n            \u003c\u003c\"hosting\"\u003e\u003e =\u003e true,\u003c\u003c\"tor\"\u003e\u003e =\u003e false,\u003c\u003c\"vpn\"\u003e\u003e =\u003e false},\n      \u003c\u003c\"region\"\u003e\u003e =\u003e \u003c\u003c\"California\"\u003e\u003e,\n      \u003c\u003c\"timezone\"\u003e\u003e =\u003e \u003c\u003c\"America/Los_Angeles\"\u003e\u003e}}\n```\n\n### Details Data\n\n`ipinfo:details/1,2` will return a map that contains all fields\nlisted in the [IPinfo developer documentation](https://ipinfo.io/developers/responses#full-response)\nwith a few minor additions. Properties can be accessed directly.\n\n### Configuration\n\nTBD\n\n## Elixir Usage\n\n```elixir\nalias :ipinfo, as: IPinfo\n\ndef current_ip() do\n  with {:ok, %IPinfo{} = handler} \u003c- IPinfo.create(),\n       {:ok, details} \u003c- IPinfo.details(handler) do\n    details.ip\n    |\u003e String.to_charlist()\n    |\u003e :inet_parse.address()\n  end\nend\n```\n\n## Other Libraries\n\nThere are official [IPinfo client libraries](https://ipinfo.io/developers/libraries) available for many languages including PHP, Go, Java, Ruby, and many popular frameworks such as Django, Rails, and Laravel. There are also many third-party libraries and integrations available for our API.\n\n## About IPinfo\n\nFounded in 2013, IPinfo prides itself on being the most reliable, accurate, and in-depth source of IP address data available anywhere. We process terabytes of data to produce our custom IP geolocation, company, carrier, VPN detection, hosted domains, and IP type data sets. Our API handles over 40 billion requests a month for 100,000 businesses and developers.\n\n[![image](https://avatars3.githubusercontent.com/u/15721521?s=128\u0026u=7bb7dde5c4991335fb234e68a30971944abc6bf3\u0026v=4)](https://ipinfo.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipinfo%2Ferlang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipinfo%2Ferlang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipinfo%2Ferlang/lists"}