In this tutorial, we’re going to find country, region, city, latitude and longitude of an user by user’s IP Address, simply finding geolocation of IP Address using ipinfodb.com API
First register for an account here and get your API KEY for accessing ipinfodb.com API. Make sure you enter Server IP correctly while registering.
Find Country, City, Latitude and Longitude using Python
import urllib2
import json
def getIPAddress(api_key,ip_address):
api_endpoint = "http://api.ipinfodb.com/v3/ip-city/?key=" +api_key+"&ip="+ip_address+"&format=json"
try:
api_response = urllib2.urlopen(api_endpoint)
try:
return json.loads(api_response.read())
except (ValueError, KeyError, TypeError):
return "JSON format error"
except IOError, e:
if hasattr(e, 'code'):
return e.code
elif hasattr(e, 'reason'):
return e.reason
api_key = "YOUR_API_KEY"
ip_address = "IP_ADDRESS"
data = getIPAddress(api_key,ip_address)
#print data
if data['statusCode'] == "OK":
print "IP: "+ ip_address
print "API Status:"+ data['statusCode']
print "Country:"+ data['countryName']
print "Region:"+ data['regionName']
print "City:"+ data['cityName']
print "Latitude:"+ data['latitude']
print "Longitude:"+ data['longitude']
else:
print data['statusCode']
print data['statusMessage']
Python modules used:
- urllib2
- json
Find Country, City, Latitude and Longitude using PHP
<?php
$ipAddress = "IP_ADDRESS";
$ip_key = "YOUR_API_KEY";
$query = "http://api.ipinfodb.com/v3/ip-city/?key=" . $ip_key . "&ip=" . $ipAddress . "&format=json";
$json = file_get_contents($query);
$data = json_decode($json, true);
if ($data['statusCode'] == "OK") {
echo '<pre>';
echo "IP Address: " . $ipAddress;
echo "Country: " . $data['countryName'];
echo "Region: " . $data['regionName'];
echo "City: " . $data['cityName'];
echo "Latitude: " . $data['latitude'];
echo "Longitude: " . $data['longitude'];
echo '</pre>';
} else {
echo $data['statusCode']." ".$data['statusMessage'];
}
?>