Sample code for 30+ languages & platforms
Rust

ip2location.io GeoLocation API

See more Geolocation Examples

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

Chilkat Rust Downloads

Rust

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

let http = chilkat::Http::new();

// Note: This is not a real API key.  Replace with your own...
let _ = http.set_url_var("api_key", "2C312FBC9E667E5A0211F5152E5A1333");
let _ = http.set_url_var("ip_address", "8.8.8.8");

// Note: When first creating an ip2location.io account, make sure to at least subscribe to the free access.
// Otherwise your API key will not yet work..
let Ok(json_str) = http.quick_get_str("https://api.ip2location.io/?key={$api_key}&ip={$ip_address}&format=json") else {
    println!("{}", http.last_error_text());
    return;
};

let json = chilkat::JsonObject::new();
json.set_emit_compact(false);
let _ = json.load(&json_str).is_ok();

println!("{}", json.emit().unwrap_or_default());

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

// {
//   "ip": "8.8.8.8",
//   "country_code": "US",
//   "country_name": "United States of America",
//   "region_name": "California",
//   "city_name": "Mountain View",
//   "latitude": 37.405992,
//   "longitude": -122.078515,
//   "zip_code": "94043",
//   "time_zone": "-07:00",
//   "asn": "15169",
//   "as": "Google LLC",
//   "is_proxy": false
// }

let ip = json.string_of("ip").unwrap_or_default();
let country_code = json.string_of("country_code").unwrap_or_default();
let country_name = json.string_of("country_name").unwrap_or_default();
let region_name = json.string_of("region_name").unwrap_or_default();
let city_name = json.string_of("city_name").unwrap_or_default();
let latitude = json.string_of("latitude").unwrap_or_default();
let longitude = json.string_of("longitude").unwrap_or_default();
let zip_code = json.string_of("zip_code").unwrap_or_default();
let time_zone = json.string_of("time_zone").unwrap_or_default();
let asn = json.string_of("asn").unwrap_or_default();
let v_as = json.string_of("as").unwrap_or_default();
let is_proxy = json.bool_of("is_proxy");