Santry Technology Solutions, Content Management, DotNetNuke, SharePoint Consulting
Register | Login
Thursday, November 20, 2008

Sections
  
About Us
  
Partners
Downloads
  
 WWWCoder.com Resource Directory

Redirect Web Visitors By Country Using .NET Framework in C# or VB.NET
6/17/2006 8:57:56 AM

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 shows you how by using .NET component, it can be done.

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 shows you how by using .NET component, it can be done.

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.

In this example, we use a fully functional IP2Location™ .NET component available at http://www.ip2location.net/download/IP2LocationDotNetComponent.ZIP 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.

Let's assume the English web page as index_en.htm and Japanese web page as index_jp.htm. We implement a simple script default.asp to detect visitor's country of origin. If the visitor is from Japan, then redirect him/her to index_jp.htm, otherwise index_en.htm. Simple? Here is the code and the comments serve as explanation default.asp.

Sample Codes in VB.NET Webform
------------------------------

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 Codes in C# Webform
--------------------------
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;
      }
}

Compile and upload this project to the web site. All visitors will go through this screening before redirect to an appropriate web page.


About the Author

Hexasoft Development Sdn. Bhd. (645996-K) 1-2-15 Mayang Mall Complex, Jalan Mayang Pasir 1, 11950 Bandar Bayan Baru, Penang, Malaysia. { sales@ip2location.com }


Page Options:
format for printing  Format for Printer
email article  Email Page
add to your favorites   Add to Favorites
How would you rate the quality of this content?
Poor - - Excellent
Comments?
Overall Rating:
Comments Left:
Left on 7/5/2006 8:21:12 AM by Anonymous
Comments: ok
  

 Latest Articles
  

 Latest News
  

 

Spotlight
Syndication

 


 


Digg This
 


DotNetNuke Platinum Benefactor

  
 

 Terms Of Use | Privacy Statement
 Copyright 2008 - Santry Technology Solutions, Box 172, Girard, PA 16417, (814) 774-0970