Print

Zoho Deluge - Get User Timezone, Country and Location

What?
A quick article just as a note to get the users country information from a third-party API based on the given IP address.

How?
Well this is just a list of free 3rd-party APIs and the below code is dependent on these being online and working...

The quickest I found [limit 1000 per day | Incorrect Location]:
copyraw
v_Url = "http://api.db-ip.com/v2/free/"+ zoho.ipaddress;
v_Response = getUrl( v_Url );
  1.  v_Url = "http://api.db-ip.com/v2/free/"+ zoho.ipaddress; 
  2.  v_Response = getUrl( v_Url )

Returns something like:
copyraw
{
    "ipAddress": "147.188.254.175",
    "continentCode": "EU",
    "continentName": "Europe",
    "countryCode": "GB",
    "countryName": "United Kingdom",
    "stateProv": "England",
    "city": "Birmingham (Edgbaston)"
}
  1.  { 
  2.      "ipAddress": "147.188.254.175", 
  3.      "continentCode": "EU", 
  4.      "continentName": "Europe", 
  5.      "countryCode": "GB", 
  6.      "countryName": "United Kingdom", 
  7.      "stateProv": "England", 
  8.      "city": "Birmingham (Edgbaston)" 
  9.  } 

A more comprehensive alternative [Limit 150 per minute | not for commercial use]:
copyraw
v_Url = "http://ip-api.com/json/"+ zoho.ipaddress;
v_Response = getUrl( v_Url );
// usage: v_TimeZone = v_Response.getJSON("timezone");
  1.  v_Url = "http://ip-api.com/json/"+ zoho.ipaddress; 
  2.  v_Response = getUrl( v_Url )
  3.  // usage: v_TimeZone = v_Response.getJSON("timezone")

Returns something like:
copyraw
{
    "query": "147.188.254.175",
    "status": "success",
    "continent": "Europe",
    "continentCode": "EU",
    "country": "United Kingdom",
    "countryCode": "GB",
    "region": "ENG",
    "regionName": "England",
    "city": "Birmingham",
    "district": "",
    "zip": "B15",
    "lat": 52.4666,
    "lon": -1.9205,
    "timezone": "Europe/London",
    "isp": "University of Birmingham",
    "org": "The University of Birmingham",
    "as": "AS786 Jisc Services Limited",
    "asname": "JANET",
    "mobile": false,
    "proxy": false
}
  1.  { 
  2.      "query": "147.188.254.175", 
  3.      "status": "success", 
  4.      "continent": "Europe", 
  5.      "continentCode": "EU", 
  6.      "country": "United Kingdom", 
  7.      "countryCode": "GB", 
  8.      "region": "ENG", 
  9.      "regionName": "England", 
  10.      "city": "Birmingham", 
  11.      "district": "", 
  12.      "zip": "B15", 
  13.      "lat": 52.4666, 
  14.      "lon": -1.9205, 
  15.      "timezone": "Europe/London", 
  16.      "isp": "University of Birmingham", 
  17.      "org": "The University of Birmingham", 
  18.      "as": "AS786 Jisc Services Limited", 
  19.      "asname": "JANET", 
  20.      "mobile": false, 
  21.      "proxy": false 
  22.  } 

List of Free APIs with GeoLocation services:
Just append the IP address to the end of these to test.
Category: Zoho :: Article: 682