mannysoft / geoip
Supports the two main GeoIP services (infoDB and Maxmind).
Requires
- php: >=5.3.0
- geoip2/geoip2: ~2.1
- illuminate/config: ~5.0
- illuminate/console: ~5.0
- illuminate/session: ~5.0
- illuminate/support: ~5.0
- monolog/monolog: ~1.11
Requires (Dev)
- phpspec/phpspec: ~2.1
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-12-13 10:12:06 UTC
README
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