实现纯真IP txt转mdb数据库的方法

2018-09-06 12:21

阅读:554

  纯真ip数据库转动网数据库ASP脚本

去纯真网站上下载ip数据库,同时随数据库附送的查询程序(Showip.exe)具有在线检测并升级IP数据库的功能,只要运行该程序,点击右上角的
“在线升级”,就可以升级IP数据库到最新的版本,无需再到下载网站下载新版的IP数据库。

同时查询程序(Showip.exe)还提供了解压为.txt文件的功能:)
我们就借助这一功能实现转MDB格式的数据库。

第一步:打开查询程序(Showip.exe),点击解压

第二步:保存导出的数据文本为ipaddress.txt,提示成功后,确定关闭。

第三步:新建一个MDB文件,命名为ipaddress.mdb,点击打开,使用Access提供的导入文本文件的功能,把刚才导出的ipaddress.txt导入到数据库中。

第四步:导入文本向导:
1、选择[带分隔符-用逗号或制表符之类的符号分隔每个字段]选项
2、下一步:选择空格作为分隔符;
3、下一步:新表中;
4、下一步:第一字段,不做任何修改,默认下一步;
5、下一步:定义主键:选择不要主键;
6、下一步:默认ipaddress表名,完成。

第五步:建立动网格式的数据表ipaddress2

id自动编号(可以不要)
ip1双精度数据
ip2双精度数据
country文本100字节
city文本255字节
关闭数据库。

第六步:在ASP环境下运行ip.ASP

第七步:此时的数据库非常大,为了能够小一些:(,建立一个新的空数据库,把原数据库中ipadress2导入。^!^

以后的应用我就不说了。~~~

重要的脚本部分:

复制代码 代码如下:
<%
Server.ScriptTimeOut=999
min=0开始数
max=260262结束数数据数量-1
DimConn
Conn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:DatabasePassword=01;DataSource=&Server.MapPath(ipaddress.mdb)
Conn.Open
IfErrThen
Err.Clear
SetConn=Nothing
Response.Write(<head><metahttp-equiv=Content-Typecontent=text/html;charset=gb2312/><title>数据库连接出错,请检查连接字串</title></head><body><divalign=centerstyle=width:400px;height:100px;padding:8px;font-size:9pt;border:1pxsolidThreeDShadow;POSITION:absolute;top:expression((document.body.offsetHeight-100)/2);left:expression((document.body.offsetWidth-400)/2);><tablewidth=100%height=100%style=font-size:12px;font-family:Tahoma;><tr><tdalign=center><strong>数据库连接出错,请检查连接字串</strong></td></tr></table></div></body>)
Response.End
EndIf

setrs=conn.execute(select*from[ipaddress])

ifnotrs.eofthen

first=rs.GetRows()

forj=0to261501

z=
local=

fori=0to16
iflen(first(i,j))>0then
z=first(i,j)&$$&z
endif
next

zz=split(z,$$)
startip=enaddr(zz(ubound(zz)-1))
endip=enaddr(zz(ubound(zz)-2))
country=zz(ubound(zz)-3)
forzzz=0toubound(zz)-4
local=zz(zzz)&&local
next
local=replace(local,,)
response.writestartip:&startip&<br>endip:&endip&<br>country:&country&<br>local:&local&<br><br>
conn.execute(insertinto[ipaddress2](ip1,ip2,country,[city])values(&startip&,&endip&,&country&,&local&))
next
endif
response.write升级成功!
functionenaddr(sip)
esip=cstr(sip)
str1=Left(sip,CInt(InStr(sip,.)-1))
sip=Mid(sip,cint(instr(sip,.))+1)
str2=Left(sip,cint(instr(sip,.))-1)
sip=mid(sip,cint(instr(sip,.))+1)
str3=left(sip,cint(instr(sip,.))-1)
str4=mid(sip,cint(instr(sip,.))+1)
enaddr=cint(str1)*256*256*256+cint(str2)*256*256+cint(str3)*256+cint(str4)-1
endfunction
%>



评论


亲,登录后才可以留言!