Normally,
Web application owner wanted
have the
client details either for the
security reason and for the
analysis purpose.
First, getRealIpAddr() function to
get IP address from the client
[user Browser]
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif
(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
//to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return
$ip;
}
After getting the
IP Address , we
can easily find out the
city and country
of the client browser
by passing the ip
address to the
function. In the get_location()
function , I use the http://api.hostip.info API. hostip is the free one and
no need to register.
function get_location($ip) {
$content
= @file_get_contents('http://api.hostip.info/?ip='.$ip);
if
($content != FALSE) {
$xml
= new SimpleXmlElement($content);
$coordinates
= $xml->children('gml', TRUE)->featureMember->children('',
TRUE)->Hostip->ipLocation->children('gml',
TRUE)->pointProperty->Point->coordinates;
$longlat
= explode(',', $coordinates);
$location['longitude']
= $longlat[0];
$location['latitude']
= $longlat[1];
$location['city'] =
''.$xml->children('gml', TRUE)->featureMember->children('',
TRUE)->Hostip->children('gml', TRUE)->name;
$location['country']
= ''.$xml->children('gml',
TRUE)->featureMember->children('', TRUE)->Hostip->countryName;
return
$location;
}
else
return false;
}
Finally the
output, we can change formate
of the output based on the
requirement.
$ip = getRealIpAddr();
$location_info = get_location($ip);
echo $location_info['country']."</br/>";
echo $location_info['city'];
i appreciate your comments
No comments:
Post a Comment