Determine the geographical location of website visitors based on their IP addresses. Homepage
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',
)
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
$ 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.
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');
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
);
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
- Add database_path to config
- Add update_url to config
- Add GeoIP database update command "php artisan geoip:update"
- Add some test
- Format code
- Update to Laravel 5
- Support IPv6
- Log address not found exceptions
- Supports a custom default location