Skip to content
An Elixir library for the IP2Location database
Elixir
Latest commit 23052cc Apr 3, 2016 @nazipov Release v0.1.0
Failed to load latest commit information.
config Add travis.yml Apr 1, 2016
lib Refactor modules Mar 31, 2016
test Add some tests Mar 31, 2016
.gitignore Initial commit Mar 24, 2016
.travis.yml Add travis.yml Mar 31, 2016
LICENSE.TXT Initial commit Mar 24, 2016
README.md Release v0.1.0 Apr 3, 2016
mix.exs Release v0.1.0 Apr 3, 2016
mix.lock Initial commit Mar 24, 2016

README.md

IP2Location

Build Status Hex pm

Elixir library for the IP2Location database. Supports IPv4 and IPv6.

Installation

Add IP2Location as a dependency to your project's mix.exs:

def application do
  [applications: [:ip2location]]
end

defp deps do
  [{:ip2location, github: "nazipov/ip2location-elixir"}]
end

and then run $ mix deps.get

Configuration

Add the path of the IP2Location database to your project's configuration:

use Mix.Config

database_file =
  [ __DIR__, "../data/sample-ipv6-db24.bin" ]
    |> Path.join()
    |> Path.expand()

config :ip2location,
  database: database_file,
  pool: [ size: 5, max_overflow: 10 ]

Usage

iex(1)> IP2Location.lookup("8.8.8.8")
%IP2Location.Result{ ... }
iex(1)> IP2Location.lookup("2001:4860:4860::8888")
%IP2Location.Result{ ... }

Benchmarking

iex(1)> :timer.tc(fn -> IP2Location.lookup("8.8.8.8") end )
{150, %IP2Location.Result{ ... }}
iex(2)> :timer.tc(fn -> IP2Location.lookup("2001:4860:4860::8888") end )
{152, %IP2Location.Result{ ... }}

Sample BIN Databases

License

GNU LGPLv3

Something went wrong with that request. Please try again.