存档
在网站上经常用到根据客户IP显示城市的功能,如果只是简单的查询功能,直接用网上写好的纯真的IP数据库查询工具(如:114IP.NET)即可!如果想要该地区访客的统计什么的,网上下载的这些源码恐怕就无能为力了。这个时候就需要我们把纯真IP数据导入到数据库中。
在Baidu上找了下,看到一篇通过导入纯真查询程序生成IP的数据库的文本格式到表A,然后再次用一个ASP文件来访问数据表A,把A表的IP转换到B表,这种方法我不是很赞成,而且有一定的局限行,比如要将纯真IP数据库转换成MDB格式,必须装Access,将纯真IP数据库转换成MSSQL必须安装MSSQL,转换城MYSQL必须安装MYSQL。即使安装了数据库还要安装IIS,对与新手操作可能有些麻烦了~
我写了一个VBS的脚本,通过ADODB.Connection链接数据库,然后用ADODB保存到将纯真IP数据库转MDB数据库
Function Mappath(n)
Mappath=Fso.getabsolutepathname(n)
End Function
Function IpToNum(Ip)
IpNs=split(ip,".")
IpN=IpNs(0)*S4+IpNs(1)*S3+IpNs(2)*S2+IpNs(3)*S1
if err<>0 then IpN=0
err.clear
IpToNum=IpN
End Function
S1=256
S2=256*S1
S3=256*S2
S4=256*S3
on error resume next
Set Fso=CreateObject("Scripting.FileSystemObject")
Set Conn=CreateObject("ADODB.Connection")
Conn.open "provider=microsoft.jet.oledb.4.0;data source="&Mappath("dat.mdb")
Set Rs=CreateObject("ADODB.Recordset")
Rs.open "Select * from d",Conn,2,3
Set Fto=Fso.OpenTextFile(Mappath("dat.txt"))
Do while not Fto.atendofstream
Rs.addnew
Res=Split(Replace(Replace(Fto.Readline," ","")," "," ")," ")
Rs("s")=IpToNum(Res(0))
Rs("e")=IpToNum(Res(1))
Rs("c")=Res(2)
Rs("h")=Res(3)
Wscript.Echo "From "&Res(0)&" To "&Res(1)&" Updated."
Rs.update
Loop
Rs.close
将纯真数据库转MSSQL数据库也很简单,只需改
Conn.open “driver={SQL Server}; server=(local);database= ;uid= ;pwd= ”
将纯真数据库转MYSQL数据库,只需改
Conn.open “Driver={mysql};database=[yourdatabase];uid=[username];pwd=[yourpassword];option=16386;”