Skip to content

Library ported to PHP 5.3 to use it in Symfony2 Projects

Notifications You must be signed in to change notification settings

IDCI-Consulting/Maxmind-GeoIp

This branch is 69 commits ahead of, 5 commits behind aferrandini/Maxmind-GeoIp:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7807f6d · Feb 7, 2018

History

94 Commits
May 22, 2012
Feb 7, 2018
Jun 15, 2017
Jun 15, 2017
Jun 14, 2017
Nov 18, 2017
Jun 15, 2017
Feb 7, 2018
Feb 7, 2018
Jun 1, 2017
Jun 1, 2017

Repository files navigation

Maxmind GeoIp Library

Symfony bundle to easily use maxmind geoip bundle.

SensioLabsInsight Build

Installation

To install this library please follow the next steps:

First add the dependencie to your composer.json file:

"require": {
    ...
    "maxmind/geoip": "dev-master"
},

Then install the bundle with the command:

php composer update

Enable the bundle in your application kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Maxmind\Bundle\GeoipBundle\MaxmindGeoipBundle(),
    );
}

Now the library is installed.

To get the maxmind data source file (in '.dat' format), you can choose between one of the two following purposed methods:

You can go on the maxmind free download data page: http://dev.maxmind.com/geoip/geolite And get the needed version. Then you have to unzip the downloaded file in the data directory located in 'vendor/maxmind/geoip/data'.

Or you can simply execute this command:

php app/console maxmind:geoip:update-data %url-data-source%

Replace %url-data-source% with the url of the needed data source. ex: http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

If you want to use your data file in another directory, you can configure it on app\config\config.yml

# app/config/config.yml
maxmind_geoip:
	data_file_path: "%kernel.root_dir%/../web/GeoIPCity.dat"

Now can use the Maxmind GeoIp Library everywhere in your Symfony2 application.

Usage

The following examples are available if you are in a controller

$geoip = $this->get('maxmind.geoip')->lookup(%IP_ADDR%);

$geoip->getCountryCode();
$geoip->getCountryCode3();
$geoip->getCountryName();
$geoip->getRegion();
$geoip->getCity();
$geoip->getPostalCode();
$geoip->getLatitude();
$geoip->getLongitude();
$geoip->getAreaCode();
$geoip->getMetroCode();
$geoip->getContinentCode();

Or in twig file

{{ ip|geoip.countryCode }}
{{ ip|geoip.countryCode3 }}
{{ ip|geoip.countryName }}
{{ ip|geoip.regionCode }}
{{ ip|geoip.region }}
{{ ip|geoip.city }}
{{ ip|geoip.postalCode }}
{{ ip|geoip.latitude }}
{{ ip|geoip.longitude }}
{{ ip|geoip.areaCode }}
{{ ip|geoip.metroCode }}
{{ ip|geoip.continentCode }}

You can add a demo route in your 'routing_dev' to get an example on how this bundle work for example:

_maxmind_geoip:
    resource: "@MaxmindGeoipBundle/Controller/DemoController.php"
    type:     annotation
    prefix:   /demo

Get a lookup at /demo/geoip

This library is an import of Maxmind GeoIp Free Library, you can find at http://www.maxmind.com/

About

Library ported to PHP 5.3 to use it in Symfony2 Projects

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 78.3%
  • C 20.1%
  • Other 1.6%