Sample code for 30+ languages & platforms
Chilkat2-Python

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 Chilkat2-Python Downloads

Chilkat2-Python
import sys
import chilkat2

success = False

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

http = chilkat2.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)
jsonStr = http.QuickGetStr("https://geoip.maxmind.com/geoip/v2.1/country/149.250.207.170")
if (http.LastMethodSuccess == False):
    print(http.LastErrorText)
    sys.exit()

json = chilkat2.JsonObject()
json.EmitCompact = False
success = json.Load(jsonStr)

print(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"
#   }
# }
# 
# 

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")