| 
<?php
 namespace PHPtricks\Logaty\Helpers\Detect;
 
 trait Country
 {
 public function country($code = '')
 {
 if(!$code) $code = $this->getCountryCodeFromIp();
 $countryInfo = logaty()->defaultLang();
 if(false !== ($countryFile = @file_get_contents("https://restcountries.eu/rest/v1/alpha/{$code}")))
 $countryInfo = json_decode($countryFile, true);
 return is_array($countryInfo) ? $countryInfo['languages'][0] : $countryInfo;
 }
 private function getCountryCodeFromIp()
 {
 $ip = $this->getIp();
 $countryCode = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $ip));
 return strtolower($countryCode['geoplugin_countryCode']);
 }
 private function getIp()
 {
 $ipAddress = 'UNKNOWN';
 if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
 $ipAddress = $_SERVER['HTTP_CF_CONNECTING_IP'];
 } else if(isset($_SERVER['HTTP_X_REAL_IP'])) {
 $ipAddress = $_SERVER['HTTP_X_REAL_IP'];
 } else if(isset($_SERVER['HTTP_CLIENT_IP']))
 $ipAddress = $_SERVER['HTTP_CLIENT_IP'];
 else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
 $ipAddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
 else if(isset($_SERVER['HTTP_X_FORWARDED']))
 $ipAddress = $_SERVER['HTTP_X_FORWARDED'];
 else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
 $ipAddress = $_SERVER['HTTP_FORWARDED_FOR'];
 else if(isset($_SERVER['HTTP_FORWARDED']))
 $ipAddress = $_SERVER['HTTP_FORWARDED'];
 else if(isset($_SERVER['REMOTE_ADDR']))
 $ipAddress = $_SERVER['REMOTE_ADDR'];
 return $ipAddress;
 }
 
 }
 |