geoip2

Pure haskell interface to MaxMind GeoIP database

Latest on Hackage:0.2.2.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD3 licensed by Ondrej Palkovsky

GeoIP2 - library for accessing GeoIP2 database

Build Status Hackage

GeoIP2 is a haskell binding to the MaxMind GeoIP2 database. It parses the database according to the MaxMind DB specification, version 2 of the specification is supported. The free geolite2 database can be downloaded at http://dev.maxmind.com/geoip/geoip2/geolite2/.

See haddock documentaion for details.

{-# LANGUAGE OverloadedStrings #-}
import Data.GeoIP2
import Data.IP (IP(..))

main = do
  geodb <- openGeoDB "GeoLite2-City.mmdb"
  let ip = IPv4 "23.253.242.70"
  print $ (findGeoData geodb "en" ip)

  let ip2 = IPv6 "2001:4800:7817:104:be76:4eff:fe04:f608"
  print $ (findGeoData geodb "en" ip2)

Changes

0.2.0.1

  • Fixed a problem with correct decoding of 28-bit offsets

0.2.0.0

  • Changed interface to normal Either String GeoResult

0.1.0.3 -> 0.1.0.4

  • Removed lru
  • Switched from binary to cereal with a significant speedup

0.1.0.2 -> 0.1.0.3

  • Changed bytestring-mmap to mmap
  • Add LRU caching to improve performance (10000 entries are cached)

0.1.0.1 -> 0.1.0.2

  • GHC-7.10 compatibiliy
  • Add Changelog.md
  • List Changelog.md and README.md in cabal's extra-source-files
  • add stack.yaml
comments powered byDisqus