Why redirect web visitors
There are times when it is useful to redirect a visitor to different default web page based on the visitor’s country of origin. One practical usage is to redirect visitor to web page with the language recognized by the visitor.
This article will shows you how it can be done by using .NET component.
Let us take a simple case study. Company XYZ is multi-national company with major customers from United States and Japan. The company official website is developed in both English and Japanese languages. The default page is in English language and visitor can switch to Japanese by changing the default language option. There exists a potential problem when a Japanese visitor does not understand English and it could not navigate the web site. So let us develop a simple solution to help Company XYZ redirecting all Internet traffic from country Japan to the Japanese language site. Meanwhile it drives the rest traffic to English site.
How to redirect web visitors based on country
In this example, we use a fully functional IP2Location™ .NET component available at https://www.ip2location.com/software/dot-net-component to query country by visitor’s IP address. Firstly, install the IP2Location™ .NET component. The IP2Location™ .NET component will be installed in your local drive. Next, get the IP2Location.DLL .NET component and sample database from the directory, ie. c:\Program Files\IP2Location by default. You need to add a reference to this component from your Visual Studio web project. A copy of this component will be copied into /bin directory under the project. For unregistered component, there is a random 5-second delay in one out of ten queries.
Sample Code (VB.NET)
Imports IP2Location Private Sub Query(ByVal strIPAddress As String) Dim oIPResult As New IP2Location.IPResult Try If strIPAddress <> "" Then IP2Location.Component.IPDatabasePath = "C:\\Program Files\\IP2Location\\Database\\IP-COUNTRY.SAMPLE.BIN" oIPResult = IP2Location.Component.IPQuery(strIPAddress) Select Case oIPResult.Status Case "OK" If oIPResult.CountryShort = "JP" Then ' Visitor is from Japan ' Redirect the URL to index_jp.htm Response.Redirect("index_jp.htm") Else ' Visitor is not from Japan ' Redirect the URL to index_en.htm Response.Redirect("index_en.htm") End If Case "EMPTY_IP_ADDRESS" Response.Write("IP Address cannot be blank.") Case "INVALID_IP_ADDRESS" Response.Write("Invalid IP Address.") Case "MISSING_FILE" Response.Write("Invalid Database Path.") End Select Else Response.Write("IP Address cannot be blank.") End If Catch ex As Exception Response.Write(ex.Message) Finally oIPResult = Nothing End Try End Sub
Sample Code (C#)
Using IP2Location; private void Query(string strIPAddress) { IPResult oIPResult = new IP2Location.IPResult(); try { if (strIPAddress != "") { IP2Location.Component.IPDatabasePath = "C:\\Program Files\\IP2Location\\Database\\IP-COUNTRY.SAMPLE.BIN"; oIPResult = IP2Location.Component.IPQuery(strIPAddress); switch(oIPResult.Status.ToString()) { case "OK": if (oIPResult.CountryShort == "JP") { Response.Redirect("index_jp.htm") } else { Response.Redirect("index_en.htm") } break; case "EMPTY_IP_ADDRESS": Response.Write("IP Address cannot be blank."); break; case "INVALID_IP_ADDRESS": Response.Write("Invalid IP Address."); break; case "MISSING_FILE": Response.Write("Invalid Database Path."); break; } } else { Response.Write("IP Address cannot be blank."); } } catch(Exception ex) { Response.Write(ex.Message); } finally { oIPResult = null; } }