今天改blog程序的时候突然想起要做一个这个东西,然后就利用ipview.asp和我的 ip 数据库做了一个flash版的 ip查询器,看看如何?

总共包含三个文件:一个ip数据库、一个getip.asp文件,一个getip.swf文件

getip.asp文件源代码:(代码很烂,献丑了!反正偶脸皮厚!)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.Charset="UTF-8"%>
<%
Dim ipdata
ipdata=Request.QueryString(“ipdata”)
If ipdata=Empty Then ‘如果为空,取得当前机器的IP地址
dim userip
userip = Request.ServerVariables(“HTTP_X_FORWARDED_FOR”)
If userip = “” Then userip = Request.ServerVariables(“REMOTE_ADDR”)
ipdata=userip
End if
Dim IPLocation
Dim ConnIP
Set ConnIP=Server.CreateObject(“ADODB.Connection”)
ConnIP.ConnectionString=”Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=” & Server.MapPath(“ipdata.mdb”)
ConnIP.Open
Dim IPDataArr,IPDataStr,IPQuery
IPDataArr=Split(ipdata,”.”)
IPDataStr=Cint(IPDataArr(0))*16777216 + Cint(IPDataArr(1))*65536
+ Cint(IPDataArr(2))*256 + Cint(IPDataArr(3))
Set IPQuery=Server.CreateObject(“ADODB.RecordSet”)
SQL = “SELECT TOP 1 ip_Local FROM [blog_IPData] WHERE
ip_Start<="&IPDataStr&" AND ip_End>=”&IPDataStr
IPQuery.Open SQL,ConnIP,1,1
SQLQueryNums=SQLQueryNums+1
If IPQuery.EOF AND IPQuery.BOF Then
IPLocation=”库中没有这个IP记录”
Else
IPLocation=IPQuery(“ip_Local”)
End IF
IPQuery.Close
SET IPQuery=Nothing
ConnIP.Close
Set ConnIP=Nothing
‘通知FLASH:可以显示了
Response.Write(“&varOK=” + “ok”)
response.Write(“&ip=”&ipdata&”&location=”&IPLocation&””) ‘其中
ip,location均是fla中第五帧显示结果的动态文本框的变量名
%>

fla场景中的布局:
第三帧:
一个动态文本框,变量名:loading
第五帧:
一个动态文本框,变量名:ip
一个动态文本框,变量名:location
一个输入文本框,变量名:ipdata
一个按钮,动作:
on(release){
gotoAndPlay(2);
}

fla中的代码:
第一帧:
varOK=”false”; //varOK变量用来确定是否已经查询完毕

第二帧:
loadVariables(“getip.asp”,”_root”,”GET”);
loading=”loading”; //第三帧中的动态文本框值的初始化,用来做动态loading
i=0; //第三帧中要用到的计数器变量

第三帧:
每次播放到第三帧,loading后每次增加一个点,超过十个点,重新循环
if(i<10){
loading+=”.”;
i++;
}
else{
loading=”loading”;
i=0;
}

第四帧:
if (varOK == “ok”) {
gotoAndStop(5); //如果查询完毕,转到第5帧停止,显示结果
}
else{
gotoAndPlay(3); //否则,转到第三帧
}

2 Comments

  1. 发现在这个flash里面第二次查询的时候就会乱码,不过在发布成网页后就不乱码了:http://211.69.197.114:8080/getip.html

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.