Get IP Address in PHP

Many times we need the IP Address of the User visiting our website in our Application.

I am listing here the method to get the User IP Address, hope it might be useful to many of you.

//function for getting IP
//start
function getuserip() 
{
		
    if (isset($_SERVER))
   {
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
            return $_SERVER["HTTP_X_FORWARDED_FOR"];
       
        if (isset($_SERVER["HTTP_CLIENT_IP"]))
            return $_SERVER["HTTP_CLIENT_IP"];
		
	        return $_SERVER["REMOTE_ADDR"];
    }
		
	    if (getenv('HTTP_X_FORWARDED_FOR'))
	        return getenv('HTTP_X_FORWARDED_FOR');
			
	    if (getenv('HTTP_CLIENT_IP'))
	        return getenv('HTTP_CLIENT_IP');
		
		    return getenv('REMOTE_ADDR');
}
//end

echo $user_ip = getuserip(); //call to the function

4 thoughts on “Get IP Address in PHP

  1. This code is more complete:

    function get_ip_address()
    {
    $header_checks = array(
    ‘HTTP_CLIENT_IP’,
    ‘HTTP_PRAGMA’,
    ‘HTTP_XONNECTION’,
    ‘HTTP_CACHE_INFO’,
    ‘HTTP_XPROXY’,
    ‘HTTP_PROXY’,
    ‘HTTP_PROXY_CONNECTION’,
    ‘HTTP_VIA’,
    ‘HTTP_X_COMING_FROM’,
    ‘HTTP_COMING_FROM’,
    ‘HTTP_X_FORWARDED_FOR’,
    ‘HTTP_X_FORWARDED’,
    ‘HTTP_X_CLUSTER_CLIENT_IP’,
    ‘HTTP_FORWARDED_FOR’,
    ‘HTTP_FORWARDED’,
    ‘ZHTTP_CACHE_CONTROL’,
    ‘REMOTE_ADDR’
    );

    foreach ($header_checks as $key)
    if (array_key_exists($key, $_SERVER) === true)
    foreach (explode(‘,’, $_SERVER[$key]) as $ip)
    {
    $ip = trim($ip);
    if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false)
    return $ip;
    }
    }

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top