Geolocation is a great way to put relevant content to your web visitors and it is a technology that can be used in almost any application you can think of.
In this tutorial, we use the IP2Location.io IP Geolocation API to lookup geolocation information from the visitor’s IP address. Instead of loading the full database, you can also lookup IP address via our API.
Below are the sample codes written in VB.NET to query and display visitor’s geolocation information.
Imports System.Net Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq Public Class WebForm1 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load WebAPI() End Sub Private Sub WebAPI() Dim strQuery As String Dim IPAddress As String = HttpContext.Current.Request.UserHostAddress Dim Key As String = "YOUR_API_KEY" Dim HttpWReq As HttpWebRequest Dim HttpWResp As Net.HttpWebResponse strQuery = "https://api.ip2location.io/?" & "ip=" & IPAddress & "&key=" & Key & "&format=json" HttpWReq = WebRequest.Create(strQuery) HttpWReq.Method = "GET" Try HttpWResp = HttpWReq.GetResponse() Dim reader As System.IO.StreamReader = New IO.StreamReader(HttpWResp.GetResponseStream()) Dim content As String = reader.ReadToEnd Dim results As JObject = JsonConvert.DeserializeObject(content) Response.Write("ip: " & results("ip").ToString & "<br>" & vbNewLine) Response.Write("country_code: " & results("country_code").ToString & "<br>" & vbNewLine) Response.Write("country_name: " & results("country_name").ToString & "<br>" & vbNewLine) Response.Write("region_name: " & results("region_name").ToString & "<br>" & vbNewLine) Response.Write("city_name: " & results("city_name").ToString & "<br>" & vbNewLine) Response.Write("latitude: " & results("latitude").ToString & "<br>" & vbNewLine) Response.Write("longitude: " & results("longitude").ToString & "<br>" & vbNewLine) Response.Write("zip_code: " & results("zip_code").ToString & "<br>" & vbNewLine) Response.Write("time_zone: " & results("time_zone").ToString & "<br>" & vbNewLine) Response.Write("asn: " & results("asn").ToString & "<br>" & vbNewLine) Response.Write("as: " & results("as").ToString & "<br>" & vbNewLine) If results("isp") IsNot Nothing Then Response.Write("isp: " & results("isp").ToString & "<br>" & vbNewLine) If results("domain") IsNot Nothing Then Response.Write("domain: " & results("domain").ToString & "<br>" & vbNewLine) If results("net_speed") IsNot Nothing Then Response.Write("net_speed: " & results("net_speed").ToString & "<br>" & vbNewLine) If results("idd_code") IsNot Nothing Then Response.Write("idd_code: " & results("idd_code").ToString & "<br>" & vbNewLine) If results("area_code") IsNot Nothing Then Response.Write("area_code: " & results("area_code").ToString & "<br>" & vbNewLine) If results("weather_station_code") IsNot Nothing Then Response.Write("weather_station_code: " & results("weather_station_code").ToString & "<br>" & vbNewLine) If results("weather_station_name") IsNot Nothing Then Response.Write("weather_station_name: " & results("weather_station_name").ToString & "<br>" & vbNewLine) If results("mcc") IsNot Nothing Then Response.Write("mcc: " & results("mcc").ToString & "<br>" & vbNewLine) If results("mnc") IsNot Nothing Then Response.Write("mnc: " & results("mnc").ToString & "<br>" & vbNewLine) If results("mobile_brand") IsNot Nothing Then Response.Write("mobile_brand: " & results("mobile_brand").ToString & "<br>" & vbNewLine) If results("elevation") IsNot Nothing Then Response.Write("elevation: " & results("elevation").ToString & "<br>" & vbNewLine) If results("usage_type") IsNot Nothing Then Response.Write("usage_type: " & results("usage_type").ToString & "<br>" & vbNewLine) If results("address_type") IsNot Nothing Then Response.Write("address_type: " & results("address_type").ToString & "<br>" & vbNewLine) If results("district") IsNot Nothing Then Response.Write("district: " & results("district").ToString & "<br>" & vbNewLine) If results("ads_category") IsNot Nothing Then Response.Write("ads_category: " & results("ads_category").ToString & "<br>" & vbNewLine) If results("ads_category_name") IsNot Nothing Then Response.Write("ads_category_name: " & results("ads_category_name").ToString & "<br>" & vbNewLine) Response.Write("is_proxy: " & results("is_proxy").ToString & "<br>" & vbNewLine) If results("continent") IsNot Nothing Then Dim Continent = results("continent") Response.Write("continent => name: " & Continent("name").ToString & "<br>" & vbNewLine) Response.Write("continent => code: " & Continent("code").ToString & "<br>" & vbNewLine) Response.Write("continent => hemisphere: " & Continent("hemisphere").ToString & "<br>" & vbNewLine) Response.Write("continent => translation => lang: " & Continent("translation")("lang").ToString & "<br>" & vbNewLine) Response.Write("continent => translation => value: " & Continent("translation")("value").ToString & "<br>" & vbNewLine) End If If results("country") IsNot Nothing Then Dim Country = results("country") Response.Write("country => name: " & Country("name").ToString & "<br>" & vbNewLine) Response.Write("country => alpha3_code: " & Country("alpha3_code").ToString & "<br>" & vbNewLine) Response.Write("country => numeric_code: " & Country("numeric_code").ToString & "<br>" & vbNewLine) Response.Write("country => demonym: " & Country("demonym").ToString & "<br>" & vbNewLine) Response.Write("country => flag: " & Country("flag").ToString & "<br>" & vbNewLine) Response.Write("country => capital: " & Country("capital").ToString & "<br>" & vbNewLine) Response.Write("country => total_area: " & Country("total_area").ToString & "<br>" & vbNewLine) Response.Write("country => population: " & Country("population").ToString & "<br>" & vbNewLine) Response.Write("country => tld: " & Country("tld").ToString & "<br>" & vbNewLine) Response.Write("country => currency => code: " & Country("currency")("code").ToString & "<br>" & vbNewLine) Response.Write("country => currency => name: " & Country("currency")("name").ToString & "<br>" & vbNewLine) Response.Write("country => currency => symbol: " & Country("currency")("symbol").ToString & "<br>" & vbNewLine) Response.Write("country => language => code: " & Country("language")("code").ToString & "<br>" & vbNewLine) Response.Write("country => language => name: " & Country("language")("name").ToString & "<br>" & vbNewLine) Response.Write("country => translation => lang: " & Country("translation")("lang").ToString & "<br>" & vbNewLine) Response.Write("country => translation => value: " & Country("translation")("value").ToString & "<br>" & vbNewLine) End If If results("region") IsNot Nothing Then Dim Region = results("region") Response.Write("region => name: " & Region("name").ToString & "<br>" & vbNewLine) Response.Write("region => code: " & Region("code").ToString & "<br>" & vbNewLine) Response.Write("region => translation => lang: " & Region("translation")("lang").ToString & "<br>" & vbNewLine) Response.Write("region => translation => value: " & Region("translation")("value").ToString & "<br>" & vbNewLine) End If If results("city") IsNot Nothing Then Dim City = results("city") Response.Write("city => name: " & City("name").ToString & "<br>" & vbNewLine) Response.Write("city => translation => lang: " & City("translation")("lang").ToString & "<br>" & vbNewLine) Response.Write("city => translation => value: " & City("translation")("value").ToString & "<br>" & vbNewLine) End If If results("time_zone_info") IsNot Nothing Then Dim TimeZone = results("time_zone_info") Response.Write("time_zone_info => olson: " & TimeZone("olson").ToString & "<br>" & vbNewLine) Response.Write("time_zone_info => current_time: " & TimeZone("current_time").ToString & "<br>" & vbNewLine) Response.Write("time_zone_info => gmt_offset: " & TimeZone("gmt_offset").ToString & "<br>" & vbNewLine) Response.Write("time_zone_info => is_dst: " & TimeZone("is_dst").ToString & "<br>" & vbNewLine) Response.Write("time_zone_info => sunrise: " & TimeZone("sunrise").ToString & "<br>" & vbNewLine) Response.Write("time_zone_info => sunset: " & TimeZone("sunset").ToString & "<br>" & vbNewLine) End If If results("geotargeting") IsNot Nothing Then Dim GeoTarget = results("geotargeting") Response.Write("geotargeting => metro: " & GeoTarget("metro").ToString & "<br>" & vbNewLine) End If If results("proxy") IsNot Nothing Then Dim Proxy = results("proxy") Response.Write("proxy => last_seen: " & Proxy("last_seen").ToString & "<br>" & vbNewLine) Response.Write("proxy => proxy_type: " & Proxy("proxy_type").ToString & "<br>" & vbNewLine) Response.Write("proxy => threat: " & Proxy("threat").ToString & "<br>" & vbNewLine) Response.Write("proxy => provider: " & Proxy("provider").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_vpn: " & Proxy("is_vpn").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_tor: " & Proxy("is_tor").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_data_center: " & Proxy("is_data_center").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_public_proxy: " & Proxy("is_public_proxy").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_web_proxy: " & Proxy("is_web_proxy").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_web_crawler: " & Proxy("is_web_crawler").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_residential_proxy: " & Proxy("is_residential_proxy").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_spammer: " & Proxy("is_spammer").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_scanner: " & Proxy("is_scanner").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_botnet: " & Proxy("is_botnet").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_consumer_privacy_network: " & Proxy("is_consumer_privacy_network").ToString & "<br>" & vbNewLine) Response.Write("proxy => is_enterprise_private_network: " & Proxy("is_enterprise_private_network").ToString & "<br>" & vbNewLine) End If Catch ex As Exception Response.Write(ex.Message) End Try End Sub End Class