IPGeoBase

Russia and Ukraine geoip lookup with DB from ipgeobase.ru for Mongoid 3/4

WARNING: 1.0 breaks backward compatibility. For mongoid 2 use ~> 0

Гем для работы с архивом с сайта ipgeobase.ru, содержащим базу местонахождений российских и украинских ip-адресов (с точностью до города) для MongoDB (Mongoid 3/4).

Installation

(1) Add to Gemfile:

gem "ipgeobase_mongoid"

(2) Install required gems:

bundle install

Upload new database

  • Update cities and regions. Downloads file if it’s not present in tmp/cities.txt

  • city id’s are not changed on DB update and can be used as foreign keys

    rake ipgeobase:cities
    
  • Update geo ips. Downloads file if it’s not present in tmp/cidr_optim.txt

    rake ipgeobase:ips
    

Methods

Search for city by IP (Russia and Ukraine only):

После того, как выполнены все предыдущие шаги можно искать город по IP адресу: Работает только для РФ и Украины.

> geo = Ipgeobase::find_region_by_ip('95.170.177.170')
> pp geo
=> #<Ipgeobase::City _id: 5059d68ee779891c72000201, _type: nil, geo_id: 1428, city: "Красноярск",
    region: "Красноярский край", district: "Сибирский федеральный округ", lat: 56.001251, lon: 92.88559,
    country_id: BSON::ObjectId('5059d68de779891c72000001')>
> geo.city
=> "Красноярск"
> geo.region
=> "Красноярский край"
> geo.district
=> "Сибирский федеральный округ"
> geo.country.name
=> "Россия"
> geo.country.code
=> "RU"