Laravel 10 Get Current User Location with IP Address Example

You can get the current user location with IP address in Laravel 10 using the ip2location/ip2location-laravel package. This package provides an easy way to get the user’s location information from IP address.

Step 1: Install ip2location/ip2location-laravel Package

You need to install the ip2location/ip2location-laravel package in your Laravel 10 application using the following command:

composer require ip2location/ip2location-laravel

Step 2: Register Service Provider

After installing the package, you need to register the service provider in the config/app.php file.

‘providers’ => [

// Other Service Providers

IP2Location\IP2LocationLaravel\IP2LocationLaravelServiceProvider::class,

],

Step 3: Publish Configuration File

You need to publish the configuration file of the package using the following command:

php artisan vendor:publish –provider=”IP2Location\IP2LocationLaravel\IP2LocationLaravelServiceProvider”

Step 4: Get Current User Location

Now, you can get the current user location with IP address using the following code in your controller:

use IP2Location\IP2LocationLaravel;

public function getLocation()
{
$ip2location = new IP2LocationLaravel();
$location = $ip2location->getLocation();
dd($location);
}

The above code will return the user’s location information from IP address.

There are many ways and packages to get the user’s location in the Laravel web app, using which you can do this. But in this tutorial guide, you will learn a simple and easy way how to get the current user location with ip address using stevebauman/location package.

Laravel 10 Get Current User Location with IP Address Example

By following these steps, you can get the current user location in Laravel 10 apps:

  • Step 1 – Create New Laravel 10 Project
  • Step 2 – Setup Database with Laravel Project
  • Step 3 – Installing stevebauman/location Package
  • Step 4 – Define Routes
  • Step 5 – Create Controller By Artisan Command
  • Step 6 – Create Blade View
  • Step 7 – Run Development Server

Step 1 – Create New Laravel 10 Project

Firstly, Open your terminal or command prompt.

Then execute the following command into it to download or install Laravel 10 new setup on your server:

composer create-project --prefer-dist laravel/laravel blog

Step 2 – Setup Database with Laravel Project

Once you have installed laravel project in your server. Then you need to configure your database with your apps in .env file.

So, visit your app root directory and find .env file. Then configure database details as follows:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database-name
DB_USERNAME=database-user-name
DB_PASSWORD=database-password

Step 3 – Installing stevebauman/location Package

In this step, open again your command prompt or terminal.

Then execute the following command into it to install Install stevebauman/location Package in your laravel web apps:

composer require stevebauman/location

Once you have installed stevebauman/location Package by above given command. You need to config it. So open the config/app.php file and then add service providers and aliases like following:

'providers' => [

	....

	Stevebauman\Location\LocationServiceProvider::class,

],

'aliases' => [

	....

	'Location' => 'Stevebauman\Location\Facades\Location',

]

Step 4 – Define Routes

In this step, Visit your routes directory and open web.php file in any text editor. And add the following routes into web.php route file:

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\UserController;
  
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
  
Route::get('display-user', [UserController::class, 'index']);

Step 5 – Create Controller By Artisan Command

In this step, execute the following command on terminal/command prompt/command line to create controller file for your laravel applications; is as follow:

php artisan make:controller UserController

Then go to your laravel app controller directory and open UserController.php file. And add the following code into it:

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use Stevebauman\Location\Facades\Location;
  
class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        /* $ip = $request->ip(); Dynamic IP address */
        $ip = '162.159.24.227'; /* Static IP address */
        $currentUserInfo = Location::get($ip);
          
        return view('user', compact('currentUserInfo'));
    }
}

Step 6 – Create Blade View

In this step, go to resources/views directory and create user.blade.php. Then add the following code into it:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
  
<div class="container">
    <h1>How to Get Current User Location with Laravel - Tutsmake.com</h1>
    <div class="card">
        <div class="card-body">
            @if($currentUserInfo)
                <h4>IP: {{ $currentUserInfo->ip }}</h4>
                <h4>Country Name: {{ $currentUserInfo->countryName }}</h4>
                <h4>Country Code: {{ $currentUserInfo->countryCode }}</h4>
                <h4>Region Code: {{ $currentUserInfo->regionCode }}</h4>
                <h4>Region Name: {{ $currentUserInfo->regionName }}</h4>
                <h4>City Name: {{ $currentUserInfo->cityName }}</h4>
                <h4>Zip Code: {{ $currentUserInfo->zipCode }}</h4>
                <h4>Latitude: {{ $currentUserInfo->latitude }}</h4>
                <h4>Longitude: {{ $currentUserInfo->longitude }}</h4>
            @endif
        </div>
    </div>
</div>
  
</body>
</html>

Step 7 – Run Development Server

Finally, open command prompt and run the following command to start developement server:

php artisan serve

Then open your browser and hit the following url on it:

http://127.0.0.1:8000/display-user

Recommended Laravel Posts

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

Contact
San Vito Al Tagliamento 33078
Pordenone Italy
Item added to cart.
0 items - 0.00
Open chat
Scan the code
Hello 👋
Can we help you?