![]() |
| ||
| This is ASP script to enable lookup country, region, city, latitude, longitude, ZIPcode, Timezone and netspeedomain and netspeed from IP address by using IP2Location database. Free sample database available at http://www.ip2location.com. The script supports several database types such as Microsoft Access, MS SQL and mySQL. Internet geolocation has been widely used in the products or projects below. 1) Select the geographically closest mirror 2) Analyze your web server logs to determine the countries 3) Credit card fraud detection 4) Software export controls 5) Display native language and currency 6) Prevent password sharing and abuse of service 7) Geo-targeting in advertisement |
<% '--------------------------------------------------------------------------- ' 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 %>