• Stars
    star
    24
  • Rank 954,203 (Top 20 %)
  • Language
    Crystal
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

MaxMind DB Reader for Crystal

MaxMindDB.cr

Built with Crystal Build Status Releases

Pure Crystal MaxMind DB reader, which doesn't require libmaxminddb.

If you work with GeoIP2, please use: https://github.com/delef/geoip2.cr

Installation

Add this to your application's shard.yml:

dependencies:
  maxminddb:
    github: delef/maxminddb.cr

Usage

require "maxminddb"

mmdb = MaxMindDB.open("#{__DIR__}/../data/GeoLite2-City.mmdb")
result = mmdb.get("1.1.1.1")

result["city"]["geoname_id"].as_i # => 2151718
result["city"]["names"]["en"].as_s # => "Research"

result["continent"]["code"].as_s # => "OC"
result["continent"]["geoname_id"].as_i # => 6255151
result["continent"]["names"]["en"].as_s # => "Oceania"

result["country"]["iso_code"].as_s # => "AU"
result["country"]["geoname_id"].as_i # => 2077456
result["country"]["names"]["en"].as_s # => "Australia"

result["location"]["accuracy_radius"].as_i # => 1000
result["location"]["latitude"].as_f # => -37.7
result["location"]["longitude"].as_f # => 145.1833
result["location"]["time_zone"].as_s # => "Australia/Melbourne"

result["postal"]["code"].as_s # => "3095"

result["registered_country"]["iso_code"].as_s # => "AU"
result["registered_country"]["geoname_id"].as_i # => 2077456
result["registered_country"]["names"]["en"].as_s # => "Australia"

result["subdivisions"][0]["iso_code"].as_s # => "VIC"
result["subdivisions"][0]["geoname_id"].as_i # => 2145234
result["subdivisions"][0]["names"]["en"].as_s # => "Victoria"

Links

Contributing

  1. Fork it ( https://github.com/delef/maxminddb.cr/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request