Monday, 23 September 2013

Get Domain name country state city region By using Geoip info data

You can get the domain name of server country,state and region of the server by following code
this function accept the ip address which you can get from the $_SERVER variable of php


Folowing function return  an array with geoip-infodata
<?php 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: (.*?)&nbsp;#i';
 $patterns["country"] = '#Country: (.*?)&nbsp;#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;
}?>


Call the above function

<?php  $ip=$_SERVER['REMOTE_ADDR'];
 print_r(geoCheckIP($ip)); ?>


Example:


Array
(
    [domain] => 106.215.57.31
    [country] => IN - India
    [state] => bla bla
    [town] =>bla bla
)


No comments:

Post a Comment