Sample code for 30+ languages & platforms
B4X

ipstack.com IPv4 Geolocation Lookup

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the ipstack.com REST API.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

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

Dim http As ChilkatHttp
http.Initialize("http")

'  Lookup an IPv4 address: 149.250.207.170  (this was a randomly chosen address)
Dim jsonStr As String = http.QuickGetStr("http://api.ipstack.com/149.250.207.170?access_key=YOUR_ACCESS_KEY")
If http.LastMethodSuccess = False Then
    Log(http.LastErrorText)
    Return
End If


Dim json As ChilkatJsonObject
json.Initialize
json.EmitCompact = False
success = json.Load(jsonStr)

Log(json.Emit)

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

'  {
'    "ip": "149.250.207.170",
'    "type": "ipv4",
'    "continent_code": "EU",
'    "continent_name": "Europe",
'    "country_code": "DE",
'    "country_name": "Germany",
'    "region_code": null,
'    "region_name": null,
'    "city": null,
'    "zip": null,
'    "latitude": 51.2993,
'    "longitude": 9.491,
'    "location": {
'      "geoname_id": null,
'      "capital": "Berlin",
'      "languages": [
'        {
'          "code": "de",
'          "name": "German",
'          "native": "Deutsch"
'        }
'      ],
'      "country_flag": "http:\/\/assets.ipstack.com\/flags\/de.svg",
'      "country_flag_emoji": "\ud83c\udde9\ud83c\uddea",
'      "country_flag_emoji_unicode": "U+1F1E9 U+1F1EA",
'      "calling_code": "49",
'      "is_eu": true
'    }
'  }

Dim ip As String
Dim v_type As String
Dim continent_code As String
Dim continent_name As String
Dim country_code As String
Dim country_name As String
Dim region_code As String
Dim region_name As String
Dim city As String
Dim zip As String
Dim latitude As String
Dim longitude As String
Dim locationGeoname_id As String
Dim locationCapital As String
Dim locationCountry_flag As String
Dim locationCountry_flag_emoji As String
Dim locationCountry_flag_emoji_unicode As String
Dim locationCalling_code As String
Dim locationIs_eu As Boolean
Dim i As Int
Dim count_i As Int
Dim code As String
Dim name As String
Dim native As String

ip = json.StringOf("ip")
v_type = json.StringOf("type")
continent_code = json.StringOf("continent_code")
continent_name = json.StringOf("continent_name")
country_code = json.StringOf("country_code")
country_name = json.StringOf("country_name")
region_code = json.StringOf("region_code")
region_name = json.StringOf("region_name")
city = json.StringOf("city")
zip = json.StringOf("zip")
latitude = json.StringOf("latitude")
longitude = json.StringOf("longitude")
locationGeoname_id = json.StringOf("location.geoname_id")
locationCapital = json.StringOf("location.capital")
locationCountry_flag = json.StringOf("location.country_flag")
locationCountry_flag_emoji = json.StringOf("location.country_flag_emoji")
locationCountry_flag_emoji_unicode = json.StringOf("location.country_flag_emoji_unicode")
locationCalling_code = json.StringOf("location.calling_code")
locationIs_eu = json.BoolOf("location.is_eu")
i = 0
count_i = json.SizeOfArray("location.languages")
Do While i < count_i
    json.I = i
    code = json.StringOf("location.languages[i].code")
    name = json.StringOf("location.languages[i].name")
    native = json.StringOf("location.languages[i].native")
    i = i + 1
Loop