Sample code for 30+ languages & platforms
C#

MaxMind IPv4 Geolocation Lookup

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the MaxMind GeoIP2 Precision Web Service.

Chilkat C# Downloads

C#
bool success = false;

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

Chilkat.Http http = new Chilkat.Http();

http.Login = "MAXMIND_ACCOUNT_ID";
http.Password = "MAXMIND_LICENSE_KEY";
http.Accept = "application/json";

//  Lookup an IPv4 address: 149.250.207.170  (this was a randomly chosen address)
string jsonStr = http.QuickGetStr("https://geoip.maxmind.com/geoip/v2.1/country/149.250.207.170");
if (http.LastMethodSuccess == false) {
    Debug.WriteLine(http.LastErrorText);
    return;
}

Chilkat.JsonObject json = new Chilkat.JsonObject();
json.EmitCompact = false;
success = json.Load(jsonStr);

Debug.WriteLine(json.Emit());

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

//  {
//    "continent": {
//      "code": "EU",
//      "geoname_id": 6255148,
//      "names": {
//        "ja": "?????",
//        "pt-BR": "Europa",
//        "ru": "??????",
//        "zh-CN": "??",
//        "de": "Europa",
//        "en": "Europe",
//        "es": "Europa",
//        "fr": "Europe"
//      }
//    },
//    "country": {
//      "is_in_european_union": true,
//      "iso_code": "DE",
//      "geoname_id": 2921044,
//      "names": {
//        "fr": "Allemagne",
//        "ja": "????????",
//        "pt-BR": "Alemanha",
//        "ru": "????????",
//        "zh-CN": "??",
//        "de": "Deutschland",
//        "en": "Germany",
//        "es": "Alemania"
//      }
//    },
//    "maxmind": {
//      "queries_remaining": 49999
//    },
//    "registered_country": {
//      "is_in_european_union": true,
//      "iso_code": "DE",
//      "geoname_id": 2921044,
//      "names": {
//        "es": "Alemania",
//        "fr": "Allemagne",
//        "ja": "????????",
//        "pt-BR": "Alemanha",
//        "ru": "????????",
//        "zh-CN": "??",
//        "de": "Deutschland",
//        "en": "Germany"
//      }
//    },
//    "traits": {
//      "ip_address": "149.250.207.170"
//    }
//  }
//  
//  
string continentCode;
int continentGeoname_id;
string continentNamesJa;
string continentNamesPt_BR;
string continentNamesRu;
string continentNamesZh_CN;
string continentNamesDe;
string continentNamesEn;
string continentNamesEs;
string continentNamesFr;
bool countryIs_in_european_union;
string countryIso_code;
int countryGeoname_id;
string countryNamesFr;
string countryNamesJa;
string countryNamesPt_BR;
string countryNamesRu;
string countryNamesZh_CN;
string countryNamesDe;
string countryNamesEn;
string countryNamesEs;
int maxmindQueries_remaining;
bool registered_countryIs_in_european_union;
string registered_countryIso_code;
int registered_countryGeoname_id;
string registered_countryNamesEs;
string registered_countryNamesFr;
string registered_countryNamesJa;
string registered_countryNamesPt_BR;
string registered_countryNamesRu;
string registered_countryNamesZh_CN;
string registered_countryNamesDe;
string registered_countryNamesEn;
string traitsIp_address;

continentCode = json.StringOf("continent.code");
continentGeoname_id = json.IntOf("continent.geoname_id");
continentNamesJa = json.StringOf("continent.names.ja");
continentNamesPt_BR = json.StringOf("continent.names.pt-BR");
continentNamesRu = json.StringOf("continent.names.ru");
continentNamesZh_CN = json.StringOf("continent.names.zh-CN");
continentNamesDe = json.StringOf("continent.names.de");
continentNamesEn = json.StringOf("continent.names.en");
continentNamesEs = json.StringOf("continent.names.es");
continentNamesFr = json.StringOf("continent.names.fr");
countryIs_in_european_union = json.BoolOf("country.is_in_european_union");
countryIso_code = json.StringOf("country.iso_code");
countryGeoname_id = json.IntOf("country.geoname_id");
countryNamesFr = json.StringOf("country.names.fr");
countryNamesJa = json.StringOf("country.names.ja");
countryNamesPt_BR = json.StringOf("country.names.pt-BR");
countryNamesRu = json.StringOf("country.names.ru");
countryNamesZh_CN = json.StringOf("country.names.zh-CN");
countryNamesDe = json.StringOf("country.names.de");
countryNamesEn = json.StringOf("country.names.en");
countryNamesEs = json.StringOf("country.names.es");
maxmindQueries_remaining = json.IntOf("maxmind.queries_remaining");
registered_countryIs_in_european_union = json.BoolOf("registered_country.is_in_european_union");
registered_countryIso_code = json.StringOf("registered_country.iso_code");
registered_countryGeoname_id = json.IntOf("registered_country.geoname_id");
registered_countryNamesEs = json.StringOf("registered_country.names.es");
registered_countryNamesFr = json.StringOf("registered_country.names.fr");
registered_countryNamesJa = json.StringOf("registered_country.names.ja");
registered_countryNamesPt_BR = json.StringOf("registered_country.names.pt-BR");
registered_countryNamesRu = json.StringOf("registered_country.names.ru");
registered_countryNamesZh_CN = json.StringOf("registered_country.names.zh-CN");
registered_countryNamesDe = json.StringOf("registered_country.names.de");
registered_countryNamesEn = json.StringOf("registered_country.names.en");
traitsIp_address = json.StringOf("traits.ip_address");