PHP Extension
PHP Extension
ipdata.co IPv4 Geolocation Lookup
See more Geolocation Examples
Demonstrates how to lookup Geolocation data for an IPv4 address using the ipdata.co API.Chilkat PHP Extension Downloads
<?php
include("chilkat.php");
$success = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$http = new CkHttp();
$jsonStr = $http->quickGetStr('https://api.ipdata.co/149.250.207.170?api-key=MY_API_KEY');
if ($http->get_LastMethodSuccess() == false) {
print $http->lastErrorText() . "\n";
exit;
}
$json = new CkJsonObject();
$json->put_EmitCompact(false);
$success = $json->Load($jsonStr);
print $json->emit() . "\n";
// Sample output:
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
// {
// "ip": "149.250.207.170",
// "is_eu": true,
// "city": null,
// "region": null,
// "region_code": null,
// "country_name": "Germany",
// "country_code": "DE",
// "continent_name": "Europe",
// "continent_code": "EU",
// "latitude": 51.2993,
// "longitude": 9.491,
// "asn": "AS15854",
// "organisation": "EntServ Deutschland GmbH",
// "postal": null,
// "calling_code": "49",
// "flag": "https://ipdata.co/flags/de.png",
// "emoji_flag": "\ud83c\udde9\ud83c\uddea",
// "emoji_unicode": "U+1F1E9 U+1F1EA",
// "languages": [
// {
// "name": "German",
// "native": "Deutsch"
// }
// ],
// "currency": {
// "name": "Euro",
// "code": "EUR",
// "symbol": "\u20ac",
// "native": "\u20ac",
// "plural": "euros"
// },
// "time_zone": {
// "name": "Europe/Berlin",
// "abbr": "CEST",
// "offset": "+0200",
// "is_dst": true,
// "current_time": "2019-04-20T23:54:30.715507+02:00"
// },
// "threat": {
// "is_tor": false,
// "is_proxy": false,
// "is_anonymous": false,
// "is_known_attacker": false,
// "is_known_abuser": false,
// "is_threat": false,
// "is_bogon": false
// },
// "count": "2"
// }
$ip = $json->stringOf('ip');
$is_eu = $json->BoolOf('is_eu');
$city = $json->stringOf('city');
$region = $json->stringOf('region');
$region_code = $json->stringOf('region_code');
$country_name = $json->stringOf('country_name');
$country_code = $json->stringOf('country_code');
$continent_name = $json->stringOf('continent_name');
$continent_code = $json->stringOf('continent_code');
$latitude = $json->stringOf('latitude');
$longitude = $json->stringOf('longitude');
$asn = $json->stringOf('asn');
$organisation = $json->stringOf('organisation');
$postal = $json->stringOf('postal');
$calling_code = $json->stringOf('calling_code');
$flag = $json->stringOf('flag');
$emoji_flag = $json->stringOf('emoji_flag');
$emoji_unicode = $json->stringOf('emoji_unicode');
$currencyName = $json->stringOf('currency.name');
$currencyCode = $json->stringOf('currency.code');
$currencySymbol = $json->stringOf('currency.symbol');
$currencyNative = $json->stringOf('currency.native');
$currencyPlural = $json->stringOf('currency.plural');
$time_zoneName = $json->stringOf('time_zone.name');
$time_zoneAbbr = $json->stringOf('time_zone.abbr');
$time_zoneOffset = $json->stringOf('time_zone.offset');
$time_zoneIs_dst = $json->BoolOf('time_zone.is_dst');
$time_zoneCurrent_time = $json->stringOf('time_zone.current_time');
$threatIs_tor = $json->BoolOf('threat.is_tor');
$threatIs_proxy = $json->BoolOf('threat.is_proxy');
$threatIs_anonymous = $json->BoolOf('threat.is_anonymous');
$threatIs_known_attacker = $json->BoolOf('threat.is_known_attacker');
$threatIs_known_abuser = $json->BoolOf('threat.is_known_abuser');
$threatIs_threat = $json->BoolOf('threat.is_threat');
$threatIs_bogon = $json->BoolOf('threat.is_bogon');
$count = $json->stringOf('count');
$i = 0;
$count_i = $json->SizeOfArray('languages');
while ($i < $count_i) {
$json->put_I($i);
$name = $json->stringOf('languages[i].name');
$native = $json->stringOf('languages[i].native');
$i = $i + 1;
}
?>