This article has been dead for over three months
You
<%
'---------------------------------------------------------------------------
' Title : IP Address to Country, Region, City, Latitude, Longitude, ZIPCode, TimeZone, ISP, Domain & NetSpeed Lookup Service using Database
' Description : This script lookup the country, region, city, latitude, longitude, zipcode, timezone, isp, domain & netspeed from an IP address.
' Things that we can do with this script.
' 1. Display native language and currency
' 2. Redirect based on country
' 3. Digital rights management
' 4. Prevent password sharing and abuse of service
' 5. Reduce credit card fraud
' 6. Web log stats and analysis
' 7. Auto-selection of country on forms
' 8. Filter access from countries you do not do business with
' 9. Geo-targeting for increased sales and click-thrus
' 10. And much, much more!
' Requirements : ASP 3.0+ and MS-SQL
' Installation : a. Create a web directory in IIS.
' b. Copy ipcountryregioncitylatitudelongitudezipcodetimezoneispdomainnetspeed.asp into a web directory.
' c. Setup SQL Database in Microsoft SQL Server. See next section.
' d. Browse ipcountryregioncitylatitudelongitudezipcodetimezoneispdomainnetspeed.asp using HTTP protocol.
' example: http://localhost/ip2location/ipcountryregioncitylatitudelongitudezipcodetimezoneispdomainnetspeed.asp
' e. Enter an IP address range between 12.4.254.0 and 12.5.76.63 and click submit.
' Setup Database (Microsoft SQL Server) :
' a. Run Microsoft SQL Server's Query Analyzer.
' b. File -> Open -> MsSql-Script.sql.
' c. Press F5 to run the script.
' d. Run Microsoft SQL Server's Enterprise Manager.
' e. Goto IP2Location's Database.
' f. Right click -> All Tasks -> Import Data -> Click Next -> Select text file as datasource ->
' Click browse file button -> IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED.SAMPLE.CSV -> Click Next ->
' Select Delimited option, ANSI as File type, {CR}{LF} as Row delimited, Double Quote {"} as Text qualifier ->
' Click Next -> Select Comma option -> Click Next ->
' Select Microsoft OLE DB Provider for SQL Server as Destination, Choose IP2Location as Database ->
' Click Next -> Click Next -> Checked Run immediately -> Click Next -> Click Finish -> Click Done
'
' Author : IP2Location.com
' URL : http://www.ip2location.com
' Email : sales@ip2location.com
'
' Copyright (c) 2002-2005 IP2Location.com
'---------------------------------------------------------------------------
Response.Write " <form action=""" & Request("SCRIPT_NAME") & """ method=""POST"">" & vbCrLf
Response.Write " <textarea name=""ipaddress"" cols=15 rows=6></textarea><br>" & vbCrLf
Response.Write " <input type=""submit"" name=""submit"" value=""submit"">" & vbCrLf
Response.Write " </form>" & vbCrLf
If Not Request.Form("ipaddress") = "" Then
Dim arripaddress
Dim i
dim intCount
' get the IP address from the form
ipaddress = Request.Form("ipaddress")
ipaddress = Replace(ipaddress," ",vbCrLf)
arripaddress = Split(ipaddress,vbCrLf)
intCount = Cint(Ubound(arripaddress))
If intCount >= 0 Then
Response.Write "<p>"
Response.Write "<h1><u>Lookup Result</u></h1>"
' display Header
Response.Write "<table border = 1>"
Response.Write "<tr>"
Response.Write "<td align=center>IP Address</td>"
Response.Write "<td align=center>Country Name (Short)</td>"
Response.Write "<td align=center>Country Name (Long)</td>"
Response.Write "<td align=center>Region Name</td>"
Response.Write "<td align=center>City Name</td>"
Response.Write "<td align=center>Latitude</td>"
Response.Write "<td align=center>Longitude</td>"
Response.Write "<td align=center>ZIP Code</td>"
Response.Write "<td align=center>Time Zone</td>"
Response.Write "<td align=center>ISP Handler</td>"
Response.Write "<td align=center>Domain Name</td>"
Response.Write "<td align=center>Net Speed</td>"
Response.Write "</tr>"
For i = 0 to intCount
If arripaddress(i) <> "" Then
ipno = Dot2LongIP(arripaddress(i))
' check if the IP address is supported in demo version
If (ipno < 201653760) or (ipno > 201673791) Then
Response.Write "IP address " & ipaddress & " is not supported in demo version.<br>" & vbCrLf
Else
Dim conn, rs, sql, strconn
' select MS-SQL database using DSNless connection
strconn = "Provider=SQLOLEDB;Data Source=127.0.0.1;Initial Catalog=IP2Location;User ID=sa;Password="
Set conn = Server.CreateObject("ADODB.Connection")
conn.open strconn
' query string to lookup the country, region, city, latitude, longitude, zipcode, timezone, isp, domain & netspeed by matching the range of IP address number
strsql = "SELECT * FROM IPCITYLATLONGZIPTIMEISPDOMAINSPEED WHERE " & ipno & " BETWEEN ipFROM AND ipTO"
' execute the query
Set rs = conn.execute(strsql)
' display results
If Not rs.EOF Then
Response.Write("<tr>")
Response.Write("<td align=center>" & arripaddress(i) & "</td>")
Response.Write("<td align=center>" & rs("countrySHORT") & "</td>")
Response.Write("<td align=center>" & rs("countryLONG") & "</td>")
Response.Write("<td align=center>" & rs("ipREGION") & "</td>")
Response.Write("<td align=center>" & rs("ipCITY") & "</td>")
Response.Write("<td align=center>" & rs("ipLATITUDE") & "</td>")
Response.Write("<td align=center>" & rs("ipLONGITUDE") & "</td>")
Response.Write("<td align=center>" & rs("ipZIPCODE") & "</td>")
Response.Write("<td align=center>" & rs("ipTIMEZONE") & "</td>")
Response.Write("<td align=center>" & rs("ipISP") & "</td>")
Response.Write("<td align=center>" & rs("ipDOMAIN") & "</td>")
Response.Write("<td align=center>" & rs("ipNETSPEED") & "</td>")
Response.Write("</tr>")
Else
Response.Write("<tr>")
Response.Write("<td align=center>" & arripaddress(i) & "</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("<td align=center>-</td>")
Response.Write("</tr>")
End If
rs.close
set rs = nothing
conn.close
Set conn = nothing
End If
End If
Next
Response.Write(" </table>" & vbCrLf)
Response.Write(" </p>" & vbCrLf)
Else
Response.Write("Please enter ip address.")
End if
End If
' Convert dotted IP address into IP number in long
Function Dot2LongIP (ByVal DottedIP)
Dim i, pos
Dim PrevPos, num
If DottedIP = "" Then
Dot2LongIP = 0
Else
For i = 1 To 4
pos = InStr(PrevPos + 1, DottedIP, ".", 1)
If i = 4 Then
pos = Len(DottedIP) + 1
End If
num = Int(Mid(DottedIP, PrevPos + 1, pos - PrevPos - 1))
PrevPos = pos
Dot2LongIP = ((num Mod 256) * (256 ^ (4 - i))) + Dot2LongIP
Next
End If
End Function
%>