inwebdeveloper

Free Web Resources – inWebdeveloper

Get Geo-IP Information

Requests a geo-IP-server to check, returns where an IP is located (host, state, country, town)

[php]
<?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(&quot;IP is not valid&quot;);
}

//contact ip-server
$response=@file_get_contents(‘http://www.netip.de/search?query=’.$ip);
if (empty($response))
{
throw new InvalidArgumentException(&quot;Error contacting Geo-IP-Server&quot;);
}

//Array containing all regex-patterns necessary to extract ip-geoinfo from page
$patterns=array();
$patterns[&quot;domain&quot;] = ‘#Domain: (.*?)&nbsp;#i’;
$patterns[&quot;country&quot;] = ‘#Country: (.*?)&nbsp;#i’;
$patterns[&quot;state&quot;] = ‘#State/Region: (.*?)<br#i’;
$patterns[&quot;town&quot;] = ‘#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;
}

?>
[/php]

Source : Get Geo-IP Information


Comments are closed.