Sample code for 30+ languages & platforms
Objective-C

ipinfo.io IPv4 Geolocation Lookup

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the ipinfo.io API.

Chilkat Objective-C Downloads

Objective-C
#import <CkoHttp.h>
#import <NSString.h>
#import <CkoJsonObject.h>

BOOL success = NO;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

CkoHttp *http = [[CkoHttp alloc] init];

http.Login = @"ACCESS_TOKEN";
http.Password = @"";
http.Accept = @"application/json";

// Lookup an IPv4 address: 149.250.207.170  (this was a randomly chosen address)
NSString *jsonStr = [http QuickGetStr: @"https://ipinfo.io/149.250.207.170"];
if (http.LastMethodSuccess == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

CkoJsonObject *json = [[CkoJsonObject alloc] init];
json.EmitCompact = NO;
success = [json Load: jsonStr];

NSLog(@"%@",[json Emit]);

// Sample output:
// Use this online tool to generate parsing code from sample JSON: 
// Generate Parsing Code from JSON

// Note: This is the output for the free trial account.
// 
// {
//   "ip": "149.250.207.170",
//   "city": "",
//   "region": "",
//   "country": "DE",
//   "loc": "51.2993,9.4910",
//   "org": "AS15854 EntServ Deutschland GmbH"
// }

// A full response would look like this:

// {
//   "ip": "66.87.125.72",
//   "hostname": "66-87-125-72.pools.spcsdns.net",
//   "city": "Southbridge",
//   "region": "Massachusetts",
//   "country": "US",
//   "loc": "42.0707,-72.0440",
//   "postal": "01550",
//   "asn": {
//     "asn": "AS10507",
//     "name": "Sprint Personal Communications Systems",
//     "domain": "spcsdns.net",
//     "route": "66.87.125.0/24",
//     "type": "isp"
//   },
//   "company": {
//     "name": "Sprint Springfield POP",
//     "domain": "sprint.com",
//     "type": "isp"
//   },  
//   "carrier": {
//     "name": "Sprint",
//     "mcc": "310",
//     "mnc": "120"
//   }
// }
// 
NSString *ip = 0;
NSString *hostname = 0;
NSString *city = 0;
NSString *region = 0;
NSString *country = 0;
NSString *loc = 0;
NSString *postal = 0;
NSString *asnAsn = 0;
NSString *asnName = 0;
NSString *asnDomain = 0;
NSString *asnRoute = 0;
NSString *asnType = 0;
NSString *companyName = 0;
NSString *companyDomain = 0;
NSString *companyType = 0;
NSString *carrierName = 0;
NSString *carrierMcc = 0;
NSString *carrierMnc = 0;

ip = [json StringOf: @"ip"];
hostname = [json StringOf: @"hostname"];
city = [json StringOf: @"city"];
region = [json StringOf: @"region"];
country = [json StringOf: @"country"];
loc = [json StringOf: @"loc"];
postal = [json StringOf: @"postal"];
asnAsn = [json StringOf: @"asn.asn"];
asnName = [json StringOf: @"asn.name"];
asnDomain = [json StringOf: @"asn.domain"];
asnRoute = [json StringOf: @"asn.route"];
asnType = [json StringOf: @"asn.type"];
companyName = [json StringOf: @"company.name"];
companyDomain = [json StringOf: @"company.domain"];
companyType = [json StringOf: @"company.type"];
carrierName = [json StringOf: @"carrier.name"];
carrierMcc = [json StringOf: @"carrier.mcc"];
carrierMnc = [json StringOf: @"carrier.mnc"];