Tuesday, 18 November 2014

Fetch IP address & country

Function to fetch ip address

function get_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
  $ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;

}

Method to fetch countryname & city

 $id=trim('122.177.145.202');
$result  = array('country'=>'', 'city'=>'');
$ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$id));
if($ip_data && $ip_data->geoplugin_countryName != null){
$result['country'] = $ip_data->geoplugin_countryName;
$result['city'] = $ip_data->geoplugin_city;
}

Read the content form curl instead of file_get_contents()

 $url = "http://www.geoplugin.net/json.gp?ip=".$id;
 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $data = curl_exec($ch);
 curl_close($ch);

 $ip_data = @json_decode($data);

0 comments:

Post a Comment