<?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; } } |