Perl
Perl
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 Perl Downloads
use chilkat();
$success = 0;
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$http = chilkat::CkHttp->new();
$jsonStr = $http->quickGetStr("https://api.ipdata.co/149.250.207.170?api-key=MY_API_KEY");
if ($http->get_LastMethodSuccess() == 0) {
print $http->lastErrorText() . "\r\n";
exit;
}
$json = chilkat::CkJsonObject->new();
$json->put_EmitCompact(0);
$success = $json->Load($jsonStr);
print $json->emit() . "\r\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;
}