Geo Location based on IP Address - PHP [closed]
Get Geo-IP Information
Requests a geo-IP-server (netip.de) to check, returns where an IP is located (host, state, country, town).
<?php $ip='94.219.40.96'; print_r(geoCheckIP($ip)); //Array ( [domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen ) //Get an array with geoip-infodata function geoCheckIP($ip) { //check, if the provided ip is valid if(!filter_var($ip, FILTER_VALIDATE_IP)) { throw new InvalidArgumentException("IP is not valid"); } //contact ip-server $response=@file_get_contents('http://www.netip.de/search?query='.$ip); if (empty($response)) { throw new InvalidArgumentException("Error contacting Geo-IP-Server"); } //Array containing all regex-patterns necessary to extract ip-geoinfo from page $patterns=array(); $patterns["domain"] = '#Domain: (.*?) #i'; $patterns["country"] = '#Country: (.*?) #i'; $patterns["state"] = '#State/Region: (.*?)<br#i'; $patterns["town"] = '#City: (.*?)<br#i'; //Array where results will be stored $ipInfo=array(); //check response from ipserver for above patterns foreach ($patterns as $key => $pattern) { //store the result in array $ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found'; } return $ipInfo; }?>
The best and latest is GeoplugginAPI its free and no limitations i am used for this my website http://spidersoft.in for location based download read more from this link
Try this one http://ip.codehelper.io/
Here is PHP code. The code will caching your request automatic, so your server will not send multiple request. Return IP Address, Country, City and more information.
<?php// Required Librariesrequire_once("ip.codehelper.io.php");require_once("php_fast_cache.php");// New Class$_ip = new ip_codehelper();// Detect Real IP Address & Location$real_client_ip_address = $_ip->getRealIP();$visitor_location = $_ip->getLocation($real_client_ip_address);// Output resultecho $visitor_location['Country']."";echo "<pre>";print_r($visitor_location);