动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP实例
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ ASP实例 ]的信息

本月文章推荐
.使用InstallShield制作ASP安装程.
.采用XMLHTTP编写一个天气预报的程.
.浅谈TeeChart组件在ASP中的应用.
.纯编码实现数据库的建立或压缩.
.二级域名原理以及程序,申请即可.
.利用ASP实现对表的分页浏览(上).
.ASP直接调用EXCEL数据的例子(不.
.通过ASP与ACCESS数据库建立连接(.
.XMLHTTP+Javascript+Asp写得聊天.
.精彩OUTLOOK 2000组件放送.
.用asp怎样编写文档搜索页面(4).
.一个BBS的源代码(四).
.使用JScript.NET创建asp.net页面.
.利用ASP的文件操作实现用户管理.
.取得服务器上用户组列表脚本之VB.
.WSH 直接将查询数据结果生成 EXC.
.ASP中实现文件上传方法的研究.
.利用CDONTS发送邮件的ASP函数.
.利用ASP将HTML格式数据传输给Exc.
.轻松实现将上传图片到数据库.

全球IP地址查询完整版

发表日期:2001-10-4 |


    突然在某某网站看到IP地址查询,于是心血来潮做了一个。这是用asp查询全球IP地址的程式,由于类似的的用Asp查询IP的速度不是很理想,本人使用的也是宏志宏的IP地址数据库,只是对它进行了改进。

本人在 win98+pws+access2000上测试通过,效果比较理想。

数据库的设计在一个软件中的比例,毫不夸张的说占60%,虽然这是一个小的程式,但也得到一定的体现。

有任何错误或建议请一定要给我发E-mail: ljz811@163.com  ,我也不了解“追捕”等类似算法,欢迎交流,谢谢!

好了废话少说,开始吧。

1、  转wry.dll为.mdb由于我们要优化数据库(适合我们用的),建议这样做:

将文件改为wry.xls用Excel打开。

在Access中新建表IP

字段名                 类型               长度                   说明

------------------------------------------------------------------------------------------------------------

     id                  自动编号   

newid                 数字                5                      startip前三个数字

    seconded                数字                5                    startip第二部分三个数字

    startip                  文本               20                    起始IP段

    endip                  文本                20                    止 IP 段

    country                 文本                                     此段IP所在国家或省

    local                   文本                                      此段IP所在地

                               

从Excel中copy     startip/endip/country/local 四个字段至Access ,id会自动添加,对于newid和secondid当然我们不可能手工添加,可以这样实现。

  <!--#include file="dbpath.asp"-->



<%

sqlcmd="select * from ip"

‘建议使用sqlcmd="select * from ipwhere id>=值1 and id<值2"  ,因为对于一万个左右的数据一下子添加资源占用很大

          set rs=ip.execute(sqlcmd)

          do while not rs.eof

            fir=left(rs("startip"),3)

            sec=mid(rs("startip"),5,3)

            sqlcmd3="update ip set newid='"&str&"',secondid='"sec"' "

            ip.execute sqlcmd3          

            rs.movenext

           loop

%>

这样就完成数据库的修改,对于dbpath.asp 文件下面讲

2、  文件介绍

本程序分 dbpath.asp   和   search.asp

以下是源程序及简要描述

Dbpath.Asp 代码如下:(本人命名数据库名字为ip.mdb)



<%@ Language=VBScript %>

<% set ip=server.createobject("ADODB.CONNECTION")  

ip.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("ip.mdb") %>





search.asp  代码如下:

<!--#include file="dbpath.asp"-->

<%

'           Write  by  尥蹶子

'                   If you find some error or you have better idea

'           Please contact  me

'           My Email: ljz811@163.com    Oicq:30763914

%>

<%

'建立一个提交的表单

%>

<BODY bgColor=azure>

<P align=center>IP查询<BR><BR><BR>

<FORM action="index.asp" method=post id=form1 name=form1>



<font size=2>输入IP:</font><INPUT id=text1 name=putip

style    ="BACKGROUND-COLOR: lavender; HEIGHT: 22px; WIDTH: 182px" >&nbsp;

<INPUT id=submit1 name=sub1 style="BACKGROUND-COLOR: lightblue; FONT-SIZE: 12" type=submit value="我查" tabindex="0">

</FORM>



<%

userip=Request.ServerVariables ("REMOTE_ADDR")

listip=trim(request("putip"))

  if listip="" or listip=" " then

  Response.Write "<p align=center><font size=2>请输入IP地址!</font></p>"

  else



'---判断访问者的IP是否与输入的ip同

   cmp=strcomp(userip,listip,1)

   if cmp=0 then  %>

  <p align=center><font size=2 >这就是你自己呀!</p>

  <%

   

  else  

  '获得输入ip的第1段,并置3位

  num1=Instr(listip,".")

  

   '判断第一段是否正确

   if mun1=1 then

     Response.Write  "<p align=center>"&listip&"<br>"&" <font size=2 >非有效的IP地址,IP每段必须1~3位!</p>"

   else

  fir=left(listip,num1-1)

     if len(fir)=2 then

        fir=0&fir

     end if  

     if len(fir)=1 then

        fir=0&fir

        fir=0&fir

     end if  

   

  '获得输入ip的第2段,并置3位

  num2=Instr(num1+1,listip,".")

  sec=mid(listip,num1+1,num2-(num1+1))

      if len(sec)=2 then

        sec=0&sec

     end if  

     if len(sec)=1 then

        sec=0&sec

        sec=0&sec

     end if  



     

  '获得输入ip的第3段,并置3位

  num3=Instr(num2+1,listip,".")

  thr=mid(listip,num2+1,num3-(num2+1))

      if len(thr)=2 then

        thr=0&thr

     end if  

     if len(thr)=1 then

        thr=0&thr

        thr=0&thr

     end if  



  '获得输入ip的第4段,并置3位

  fou=right(listip,len(listip)-num3)

      if len(fou)=2 then

        fou=0&fou

     end if  

     if len(fou)=1 then

        fou=0&fou

        fou=0&fou

     end if  

   

  '判断是否为有效IP

   if len(fir)=0 or len(fir)>3 or len(sec)=0 or len(sec)>3 or len(thr)=0 or len(thr)>3 or len(fou)=0 or len(fou)>3 then

  Response.Write  "<p align=center>"&listip&"<br>"&" <font size=2 >非有效的IP地址,IP每段必须1~3位!</p>"

  

  else

  

    '判断是否为保留地址

     if ((fir>=0) and  (fir<= 2)) or ((fir>=58) and (fir<=60)) or ((fir>=67) and (fir<=126)) then

     Response.Write  "<p align=center>"&listip&"<br>"&" <font size=2 >Internet IP保留地址!</p>"

      

     else

     

        '判断是否为分配地址

        if (fir>=219 and fir<=223) or fir=225 then

        Response.Write  "<p align=center>"&listip&"<br>"&" <font size=2 >此IP地址尚未分配!</p>"

        else

        if fir>255 or fir<0 or sec>255 or sec<0 or thr>255 or thr<0 or fou>255 or fou<0 then

       Response.Write  "<p align=center>"&listip&"<br>"&" <font size=2 >Internet IP地址输入值不正确!</p>"

       else

        

       '查询IP地址数据库

        Set sql= Server.CreateObject("ADODB.Recordset")

                        rs1="select id,startip,endip,country,local from ip where id<9904 and newid="&fir&" and secondid="&sec&" "

                         sql.open rs1,ip,1,1

          '对于类似224.000.000.000~224.255.255.255的ip地址进行处理

          if sql.RecordCount = 1 then   

           sql.Close

        sqlcmd2="select id,startip,endip,country,local from ip where id<9904 and newid="&fir&" and secondid="&sec&" order by id desc"

         set rs=ip.execute(sqlcmd2)

          else

          sqlcmd2="select id,startip,endip,country,local from ip where id<9904 and newid="&fir&" order by id desc"

          set rs=ip.execute(sqlcmd2)

             if rs.eof then

          %>

        <br><br><font size="2"><P align=center><%=listip%><br>★未知IP数据★<BR>如果你知道请告诉我!OICQ:30763914 谢谢!<BR>=尥蹶子=</font></P>

         <% else

          do while not rs.eof

           '*******处理country  or  local为空的情况,使用了按id倒排(why?因为根据IP地址表可知,先列大地区的ip段,例如先列出欧洲的062.000.000.000~062.255.255.255,再列英国等IP段)

           '对后面三段IP进行处理,是否在IP表内

            if  (sec>=(mid(rs("startip"),5,3)) and (sec<=mid(rs("endip"),5,3))) and (thr>=(mid(rs("startip"),9,3)) and (thr<=mid(rs("endip"),9,3))) and (fou>=(mid(rs("startip"),13,3)) and (fou<=mid(rs("endip"),13,3)))  then

             %>  

           <center><font size=2><%=listip%><br><%=rs("country")%>&nbsp;&nbsp;<%=rs("local")%></font></center>

           <%

               '若查到数据,马上跳出以免占用资源

                          exit do

               else

            

              end if

              if rs.eof then

              '如果没有打出提示

              %>

              <br><br><font size="2"><P align=center><%=listip%><br>★未知IP数据★<BR>如果你知道请告诉我!OICQ:30763914 谢谢!<BR>=尥蹶子=</font></P>

            <%

             end if

              rs.movenext

          loop

          

          end if

         end if

          %>

            

      

     <%

      end if

end if%>

     <%end if%>

     <%end if%>

     <%end if%>

     <%end if%><%end if%>

</BODY>

</HTML>


上一篇:把HTML表单提交的数据转化成XML文件 人气:11711
下一篇:一个把WORD转换成HTML的程序 人气:17116
浏览全部的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-11-22 CMS001 v2.2 bulid 081122 Beta
2008-11-22 腾讯小说小偷 v5.0 20081113
2008-11-22 iestore网上商店系统 v1.0.7.0
2008-11-22 GKEE CRM客户管理系统 v1.2
2008-11-22 shopd1网店系统 v1.3
2008-11-22 翎风个人主页管理系统 v1.5
2008-11-22 开良狗狗影视搜索小偷 v1.1
2008-11-22 XtreMedia
2008-11-22 互联网数据分享应用平台 v1.0.0
2008-11-21 傲游(Maxthon) 2.1.5 正式版
2008-11-21 Skype v3.8.0.188 Final
2008-11-21 AirPlay OpenAlpha 2008.11.20
2008-11-21 屏幕文字抓取工具 DWMouse1.3.510
2008-11-21 Vista一键还原(Vista Ghost)1.
2008-11-21 SP Photo Fix照片修改1.2破解版
2008-11-21 QQ腾讯聊天工具 v1.2正式版
2008-11-21 FlightTrack航班信息v1.0破解版
2008-11-21 RealPiano仿真钢琴1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成