Get IP address, address and timezone details - returns location, timezone and datetime details

Working with, and understanding time zones can be a hair pulling experience.
TimezoneAPI makes it easy for you to request an extensive amount of information
about your users based on IP address lookup, address lookup or time zone lookup.

$ curl https://timezoneapi.io/api/ip/?66.220.144.0&token;=TOKEN
// Get IP address
$ip_address = getenv('HTTP_CLIENT_IP') ?: getenv('HTTP_X_FORWARDED_FOR') ?: getenv('HTTP_X_FORWARDED') ?: getenv('HTTP_FORWARDED_FOR') ?: getenv('HTTP_FORWARDED') ?: getenv('REMOTE_ADDR');

// Get JSON object
$jsondata = file_get_contents("http://timezoneapi.io/api/ip/?" . $ip_address . '&token;=TOKEN');

// Decode
$data = json_decode($jsondata, true);

// Request OK?
if($data['meta']['code'] == '200'){

	// Example: Get the city parameter
	echo "City: " . $data['data']['city'] . "<br>";

	// Example: Get the users time
	echo "Time: " . $data['data']['datetime']['date_time_txt'] . "<br>";

}
// Require
const request = require('request');

// Request
request('https://timezoneapi.io/api/ip/?token=TOKEN', function(err, res, dat){

	// Parse
	var data = JSON.parse(dat);

	// Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

        // Example: Get the city parameter
        var city = data.data.city;

        // Example: Get the users time
        var time = data.data.datetime.date_time_txt;

    }

});
// Get JSON object
$.getJSON('https://timezoneapi.io/api/ip/?token=TOKEN', function(data){

	// Request OK?
	if(data.meta.code == '200'){

		// Log
		console.log(data);

		// Example: Get the city parameter
		var city = data.data.city;
		alert(city);

		// Example: Get the users time
		var time = data.data.datetime.date_time_txt;
		alert(time);

	}

});
# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://timezoneapi.io/api/ip/?token=TOKEN').read)

# If OK, get values
if data['meta']['code'] = 200
	city = data['data']['city']
	puts city
	time = data['data']['datetime']['date_time_txt']
	puts time
end
# Import
import requests

# Get
response = requests.get('https://timezoneapi.io/api/ip/?token=TOKEN')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
	City = data['data']['city']
	print City
	Time = data['data']['datetime']['date_time_txt']
	print Time
{
    "meta": {
        "code": "200"
    },
    "data": {
        "ip": "66.220.144.0",
        "city": "Menlo Park",
        "postal": "94025",
        "state": "California",
        "state_code": "CA",
        "country": "United States",
        "country_code": "US",
        "location": "37.459,-122.1781",
        "timezone": {
            "id": "America\/Los_Angeles",
            "location": "34.05222,-118.24278",
            "country_code": "US",
            "country_name": "United States of America",
            "iso3166_1_alpha_2": "US",
            "iso3166_1_alpha_3": "USA",
            "un_m49_code": "840",
            "itu": "USA",
            "marc": "xxu",
            "wmo": "US",
            "ds": "USA",
            "phone_prefix": "1",
            "fifa": "USA",
            "fips": "US",
            "gual": "259",
            "ioc": "USA",
            "currency_alpha_code": "USD",
            "currency_country_name": "UNITED STATES",
            "currency_minor_unit": "2",
            "currency_name": "US Dollar",
            "currency_code": "840",
            "independent": "Yes",
            "capital": "Washington",
            "continent": "NA",
            "tld": ".us",
            "languages": "en-US,es-US,haw,fr",
            "geoname_id": "6252001",
            "edgar": ""
        },
        "datetime": {
            "date": "12\/05\/2021",
            "date_time": "12\/05\/2021 01:35:13",
            "date_time_txt": "Monday, December 5, 2021 01:35:13",
            "date_time_wti": "Mon, 05 Dec 2021 01:35:13 -0800",
            "date_time_ymd": "2021-12-05T01:35:13-08:00",
            "time": "01:35:13",
            "month": "12",
            "month_wilz": "12",
            "month_abbr": "Dec",
            "month_full": "December",
            "month_days": "31",
            "day": "5",
            "day_wilz": "05",
            "day_abbr": "Mon",
            "day_full": "Monday",
            "year": "2021",
            "year_abbr": "16",
            "hour_12_wolz": "1",
            "hour_12_wilz": "01",
            "hour_24_wolz": "1",
            "hour_24_wilz": "01",
            "hour_am_pm": "am",
            "minutes": "35",
            "seconds": "13",
            "week": "49",
            "offset_seconds": "-28800",
            "offset_minutes": "-480",
            "offset_hours": "-8",
            "offset_gmt": "-08:00",
            "offset_tzid": "America\/Los_Angeles",
            "offset_tzab": "PST",
            "offset_tzfull": "Pacific Standard Time",
            "tz_string": "PST8PDT,M3.3.0/2,M11.2.0/2",
            "dst": "false",
            "dst_observes": "true",
            "timeday_spe": "late_night",
            "timeday_gen": "night"
        }
    }
}