B4X
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
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