The aim of this guide is to demonstrate the deployment of the IP2Location .NET component as a global object in ASP.NET.
First of all, you will need to download the IP2Location .NET component from NuGet.
Download at https://www.nuget.org/packages/IP2Location.IPGeolocation/ and install in your Visual Studio.
Next, you will need to download the IP2Location BIN file.
Extract out the BIN file and copy to the bin folder of your ASP.NET website.
Creating & instantiating the IP2Location .NET component as a global object
Copy & paste the following codes into your Global.asax.vb file. Our example uses the DB26 BIN file.
The code does the following:
- Declare a static IP2Location.Component variable inside the Global_asax class and call it myIP2Loc.
- Instantiate the myIP2Loc variable under Application_Start event.
- Assign the BIN database path.
- Set the UseMemoryMappedFile property to True. This will load the BIN file into a memory mapped file so there will be less file reads.
NOTE: There is no need to explicitly destroy the variable since it will be alive for the duration of the Application state.
Imports System.Web.SessionState
Public Class Global_asax
Inherits System.Web.HttpApplication
Public Shared myIP2Loc = New IP2Location.Component
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the application is started
Dim mydirectory As String = "/bin/" ' edit to the path for your BIN file
Dim mybin As String = "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY-DISTRICT-ASN.BIN" ' edit to your BIN file name
myIP2Loc.MapFileName = "MyBIN" & System.Web.Security.Membership.GeneratePassword(8, 0).ToString
myIP2Loc.Open(Server.MapPath(mydirectory & mybin), True) ' True for UseMemoryMappedFile
End Sub
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session is started
End Sub
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires at the beginning of each request
End Sub
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires upon attempting to authenticate the use
End Sub
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' Fires when an error occurs
End Sub
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session ends
End Sub
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the application ends
End Sub
End Class
Calling the global object in your webpage
Copy & paste the following codes into your aspx.vb file. Our example is called Default.aspx.vb file.
The code will call the global IP2Location object and output the results. There is no need to create a new IP2Location object for each query.
Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim myresult As IP2Location.IPResult
myresult = Global_asax.myIP2Loc.IPQuery("8.8.8.8")
Dim mystr As String = ""
mystr += "IP Address: " & myresult.IPAddress & vbNewLine
mystr += "City: " & myresult.City & vbNewLine
mystr += "Country Code: " & myresult.CountryShort & vbNewLine
mystr += "Country Name: " & myresult.CountryLong & vbNewLine
mystr += "Postal Code: " & myresult.ZipCode & vbNewLine
mystr += "Domain Name: " & myresult.DomainName & vbNewLine
mystr += "ISP Name: " & myresult.InternetServiceProvider & vbNewLine
mystr += "Latitude: " & myresult.Latitude & vbNewLine
mystr += "Longitude: " & myresult.Longitude & vbNewLine
mystr += "Region: " & myresult.Region & vbNewLine
mystr += "TimeZone: " & myresult.TimeZone & vbNewLine
mystr += "NetSpeed: " & myresult.NetSpeed & vbNewLine
mystr += "IDD Code: " & myresult.IDDCode & vbNewLine
mystr += "Area Code: " & myresult.AreaCode & vbNewLine
mystr += "Weather Station Code: " & myresult.WeatherStationCode & vbNewLine
mystr += "Weather Station Name: " & myresult.WeatherStationName & vbNewLine
mystr += "MCC: " & myresult.MCC & vbNewLine
mystr += "MNC: " & myresult.MNC & vbNewLine
mystr += "Mobile Brand: " & myresult.MobileBrand & vbNewLine
mystr += "Elevation: " & myresult.Elevation & vbNewLine
mystr += "Usage Type: " & myresult.UsageType & vbNewLine
mystr += "Address Type: " & myresult.AddressType & vbNewLine
mystr += "Category: " & myresult.Category & vbNewLine
mystr += "District: " & myresult.District & vbNewLine
mystr += "ASN: " & myresult.ASN & vbNewLine
mystr += "AS: " & myresult.AS & vbNewLine
mystr += "Status: " & myresult.Status & vbNewLine
Response.Write(mystr)
End Sub
End Class