it-blaster / ip-geo-base-bundle
Work with the IpGeoBase's database using Propel
Installs: 99
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 9
Forks: 3
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3.2
- ext-fileinfo: *
- propel/propel-bundle: 1.*
- symfony/framework-bundle: ~2.1
This package is not auto-updated.
Last update: 2024-12-21 17:52:16 UTC
README
Work with the IpGeoBase's database using Propel
Installation:
1. Add it-blaster/ip-geo-base-bundle
to your composer.json
:
... "require": { "it-blaster/ip-geo-base-bundle": "1.0.*" } ...
2. Register the bundle in AppKernel.php
:
... new Fenrizbes\IpGeoBaseBundle\FenrizbesIpGeoBaseBundle(), ...
3. Build models, generate and apply a migration.
4. Run a command that imports all the IpGeoBase data:
php app/console ipgeobase:update
Usage:
The bundle's service ip_geo_base
contains two methods:
getIpInfo
returns information about IP (a range and a country code) ornull
.getIpCity
returns an instance of a GeoCity model ornull
. You can configure the default city which is returned if there is no any right city in the database (see theConfiguration
section).
By default the IP-address is taken from Symfony Request but you can pass it manually if you want:
$this->get('ip_geo_base')->getIpInfo('92.242.13.250');
Configuration
There are two optional parameters that you can set:
default_city
- the default city ID. You can look it out in thegeo_city
table.enabled
- the state of IP detection service (defaulttrue
). You can setfalse
if you need to disable this service for a while. In this case thegetIpCity
method will always returnnull
or the default city (if it configured).
An example:
fenrizbes_ip_geo_base: default_city: 2732 enabled: false
Import and update data
The bundle contains a command which import data (if you run it first time) or update it:
php app/console ipgeobase:update
By default the data file is taken from http://ipgeobase.ru/files/db/Main/geo_files.zip
URL. If you want to change
the data source you can pass your URL to the source
option:
php app/console ipgeobase:update --source="http://my-syte.com/geo_files.zip"
or download the archive by yourself and pass a local path:
php app/console ipgeobase:update --source="/path/to/geo_files.zip"
Also you have an ability to update the data from text files (but remember that they must be named the same way as ones in the IpGeoBase's archive):
php app/console ipgeobase:update --source="/path/to/cities.txt" php app/console ipgeobase:update --source="/path/to/cidr_optim.txt"