纯真ip数据库转动网ip数据库方法

[ 2008-04-06 10:44:39 | 作者: admin ]
字号: | |
p.s. 今天想更新一个网站带的ip数据库,发现用的是ip转成数字的模仿动网模式判断方法。网上查了下,好像纯真的更新比较勤劳,就下载下来自己转吧。

一、下载纯真ip数据库,用自带的工具解压导出到文本格式(可以用EditPlus查看)
二、在access中导入该文本格式的ip地址,并确保mdb数据库和表名同为ipaddress,字段名分别为: id,ip1,ip2,country,city
三、使用下面的asp程序将ip1和ip2的ip字符串转成数字,转完了将ip1和ip2字段改为双精

<%
Server.ScriptTimeOut=999
totalRecords = 346071 'ip记录的总数,这里手工设置下

pagesize = 10000 '每页更新的纪录数
maxPage = clng((totalRecords-1)/pageSize)+1

page = request("page")
if page="" or isempty(page) then
   'response.write("page参数不能为空。")
   'response.end
   page = 1
else
   page = clng(page)
end if

Dim Conn
Set Conn= Server.CreateObject("ADODB.Connection")
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=01;Data Source="& Server.MapPath("ipaddress.mdb")
Conn.Open
If Err Then
Err.Clear
Set Conn = Nothing
Response.Write("<head><meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"" /><title>数据库连接出错,请检查连接字串</title></head><body><div align=""center"" style=""width:400px;height:100px;padding: 8px;font-size:9pt;border: 1px solid ThreeDShadow;POSITION:absolute;top:expression((document.body.offsetHeight-100)/2);left:expression((document.body.offsetWidth-400)/2);""><table width=""100%"" height=""100%"" style=""font-size:12px;font-family:Tahoma;""><tr><td align=""center""><strong>数据库连接出错,请检查连接字串</strong></td></tr></table></div></body>")
Response.End
End If

if page>maxPage then
   conn.close
   set conn=nothing
   response.write("操作完成。")
   response.end
else
   '开始id和结束id
   startid = (page-1) * pagesize + 1
   endid = page * pagesize
end if

set rs=conn.execute("select * from [ipaddress] where id>= " & startid & " and id<= "& endid &"")
if not rs.eof then
   while not rs.eof
   if InStr(rs("ip1"),".") > 0 and InStr(rs("ip2"),".") > 0 then '判断是不是ip
       ip1 = enaddr(rs("ip1"))
       ip2 = enaddr(rs("ip2"))
       conn.execute("update [ipaddress] set [ip1] = '"& ip1 &"', [ip2] = '"& ip2 &"' where id = "& rs("id") &" ")
   end if
   rs.movenext
   wend
   rs.close
end if
set rs=nothing
conn.close
set conn=nothing

nextpage = page+1
response.write("Page:" & page & "<script >window.location = 'ip.asp?page="& nextpage &"'</script>")

function enaddr(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
end function

%>

如果不想手工将纯真格式文本转纯真格式mdb,可以用转换工具
qupingip点击下载
[最后修改由 admin, 于 2008-07-07 10:34:16]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1074

这篇日志没有评论。

此日志不可发表评论。