mannysoft/geoip

Supports the two main GeoIP services (infoDB and Maxmind).

0.2.2 2015-06-30 16:13 UTC

README

Latest Stable Version Total Downloads

Determine the geographical location of website visitors based on their IP addresses. Homepage

Installation

To get the latest version of GeoIP simply require it in your composer.json file.

"torann/geoip": "0.2.*@dev"

You'll then need to run composer install to download it and have the autoloader updated.

Once GeoIP is installed you need to register the service provider with the application. Open up config/app.php and find the providers key.

'providers' => array(

    'Torann\GeoIP\GeoIPServiceProvider',

)

GeoIP also ships with a facade which provides the static syntax for creating collections. You can register the facade in the aliases key of your config/app.php file.

'aliases' => array(

    'GeoIP' => 'Torann\GeoIP\GeoIPFacade',

)

Publish the configurations

Run this on the command line from the root of your project:

$ php artisan vendor:publish

A configuration file will be publish to config/geoip.php

Update max mind cities database

$ php artisan geoip:update

Database Service: To use the database version of MaxMind services download the GeoLite2-City.mmdb from http://dev.maxmind.com/geoip/geoip2/geolite2/ and extract it to storage/app/geoip.mmdb. And that's it.

Usage

Get the location data for a website visitor:

$location = GeoIP::getLocation();

When an IP is not given the $_SERVER["REMOTE_ADDR"] is used.

Getting the location data for a given IP:

$location = GeoIP::getLocation('232.223.11.11');

Example Data

array (
    "ip"           => "232.223.11.11",
    "isoCode"      => "US",
    "country"      => "United States",
    "city"         => "New Haven",
    "state"        => "CT",
    "postal_code"  => "06510",
    "lat"          => 41.28,
    "lon"          => -72.88,
    "timezone"     => "America/New_York",
    "continent"    => "NA",
    "default"      => false
);

Default Location

In the case that a location is not found the fallback location will be returned with the default parameter set to true. To set your own default change it in the configurations config/geoip.php

Change Log

v0.2.1

  • Add database_path to config
  • Add update_url to config
  • Add GeoIP database update command "php artisan geoip:update"
  • Add some test
  • Format code

v0.2.0

  • Update to Laravel 5
  • Support IPv6
  • Log address not found exceptions
  • Supports a custom default location