I am trying to get the client\'s IP address in Laravel.
It is easy to get a client\'s IP in PHP by using $_SERVER[\"REMOTE_ADDR\"]
. It is working fine
In Laravel 5.4 we can't call ip static. This a correct way to get the IP of the user:
use Illuminate\Http\Request;
public function contactUS(Request $request)
{
echo $request->ip();
return view('page.contactUS');
}
You can get a few way ip address utilizing Request ip, Request getClientIp and solicitation partner work. In this model, I will tell you the best way to get current client ip address in laravel 5.8.
$clientIP = request()->ip();
dd($clientIP);
You can follow this from here
Solution 1: You can use this type of function for getting client IP
public function getClientIPaddress(Request $request) {
$clientIp = $request->ip();
return $clientIp;
}
Solution 2: if the solution1 is not providing accurate IP then you can use this function for getting visitor real IP.
public function getClientIPaddress(Request $request) {
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
$_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = $_SERVER['REMOTE_ADDR'];
if(filter_var($client, FILTER_VALIDATE_IP)){
$clientIp = $client;
}
elseif(filter_var($forward, FILTER_VALIDATE_IP)){
$clientIp = $forward;
}
else{
$clientIp = $remote;
}
return $clientIp;
}
N.B: When you have used load-balancer/proxy-server in your live server then you need to used solution 2 for getting real visitor ip.
Add namespace
use Request;
Then call the function
Request::ip();
If you are still getting 127.0.0.1 as the IP, you need to add your "proxy", but be aware that you have to change it before going into production!
Read "Configuring Trusted Proxies".
And add this:
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array
*/
protected $proxies = '*';
Now request()->ip()
gives you the correct IP.
In Laravel 5
public function index(Request $request) {
$request->ip();
}