How to get visitors country from their IP in PHP ?

In this way we can get visitors information from IP like (Latitude, Longitude, Continent Name, Country Name, City Name, Currency Symbol, Currency Code, Time zone).

Source Code

<?php 
// PHP code to get IP address  
function getVisIpAddr() { 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
        return $_SERVER['HTTP_CLIENT_IP']; 
    } 
    else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
        return $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } 
    else { 
        return $_SERVER['REMOTE_ADDR']; 
    } 
} 
// Store the IP address in local variable 
$vis_ip = getVisIPAddr(); 
// Display the IP address  in browser
echo $vis_ip; 
?> 
<?php 
// PHP code to get country, city, Continent, Latitude, Longitude, Currency Symbol, Currency Code, Timezone using IP Address 
  
$ip = $vis_ip; 
  
// Use JSON encoded string and converts 
// it into a PHP variable 
$ipdat = @json_decode(file_get_contents( 
    "http://www.geoplugin.net/json.gp?ip=" . $ip)); 
   
echo 'Latitude: ' . $ipdat->geoplugin_latitude . "\n"; 
echo 'Longitude: ' . $ipdat->geoplugin_longitude . "\n";
echo 'Continent Name: ' . $ipdat->geoplugin_continentName . "\n";
echo 'Country Name: ' . $ipdat->geoplugin_countryName . "\n"; 
echo 'City Name: ' . $ipdat->geoplugin_city . "\n";   
echo 'Currency Symbol: ' . $ipdat->geoplugin_currencySymbol . "\n"; 
echo 'Currency Code: ' . $ipdat->geoplugin_currencyCode . "\n"; 
echo 'Timezone: ' . $ipdat->geoplugin_timezone; 
?>