IP2Location is a small Laravel package that converts IPs to location.
This package is a wrapper to IP2Location.
composer require saeedvaziry/ip2locationPublish configs with the following command
php artisan vendor:publish --provider="SaeedVaziry\IP2Location\IP2LocationServiceProvider"Then modify configs/ip2location.php to set your download URL from IP2Location's website
<?php
return [
'db_path' => 'database/bin/IP2LOCATION-LITE-DB1.BIN',
'download_url' => 'https://download.ip2location.com/lite/IP2LOCATION-LITE-DB1.BIN.ZIP',
];After the installation, you need to run the following command for updating the IP database.
php artisan ip2location:updateYou can also set a scheduler in your app/Console/Kernel.php to keep it up to date.
You can use \SaeedVaziry\IP2Location\Facades\IP2Location facade to access to all supported methods.
// returns an array
\SaeedVaziry\IP2Location\Facades\IP2Location::info($ipAddress);
// returns the country full name
\SaeedVaziry\IP2Location\Facades\IP2Location::countryName($ipAddress);
// returns the country 2 character ISO code
\SaeedVaziry\IP2Location\Facades\IP2Location::countryCode($ipAddress);You may want to access to the methods via helper functions.
// returns an array
ip2location_info($ipAddress);
// returns the country full name
ip2location_country_name($ipAddress);
// returns the country 2 character ISO code
ip2location_country_code($ipAddress);If you don't pass the $ipAddress in both Facade and Helper, The method will extract the IP address from the Http request.
IP2Location is licensed under The MIT License (MIT).