庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>安全技术>黑客攻防>黑客编程>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

ASP编写完整的IP所在地搜索类 下

 作者:本站收集   日期:2005-5-23
字号选择〖 〗/ 双击滚屏 单击停止   
  ' 通过上一步的验证,现在应该要检查小点是否有3个
     If dot_count <> &H03 Then
     Valid_IP = False
     Exit Function
     End If
     ' 一切正常,那么该IP为正确的IP地址
     Valid_IP = True
     End Function 
    '────────────────────────────────
     ' 转换一个数值为IP
     Public Function CStringIP(ByVal anNewIP)
     Dim lsResults
     Dim lnTemp
     Dim lnIndex
     For lnIndex = &H03 To &H00 Step -&H01
     lnTemp = Int(anNewIP / (&H100 ^ lnIndex))
     lsResults = lsResults & lnTemp & "."
     anNewIP = anNewIP - (lnTemp * (&H100 ^ lnIndex))
     Next
     lsResults = Left(lsResults, Len(lsResults) - &H01)
     CStringIP = lsResults
     End function
     '────────────────────────────────
     ' 转换一个IP到数值
     Public Function CLongIP(ByVal asNewIP)
     Dim lnResults
     Dim lnIndex
     Dim lnIpAry
     lnIpAry = Split(asNewIP, ".", &H04)
     For lnIndex = &H00 To &H03
     if Not lnIndex = &H03 Then
     lnIpAry(lnIndex) = lnIpAry(lnIndex) * (&H100 ^ (&H03 - lnIndex))
     End if
     lnResults = lnResults + lnIpAry(lnIndex)
     Next
     CLongIP = lnResults
     End function
     '────────────────────────────────
     ' 取Client IP
     Public Function GetClientIP()
     dim uIpAddr
     ' 本函数参考webcn.Net/AspHouse 文献<取真实的客户IP>
     uIpAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
     If uIpAddr = "" Then uIpAddr = Request.ServerVariables("REMOTE_ADDR")
     GetClientIP = uIpAddr
     uIpAddr = ""
     End function
     '────────────────────────────────
     ' 读取IP所在地的信息
     Public function GetIpAddrInfo()
     Dim tmpIpAddr
     Dim IpAddrVal
     Dim ic,charSpace
     Dim tmpSQL
     charSpace = ""
     IpAddrVal = IpAddress
     If Not Valid_IP(IpAddrVal) Then
     GetIpAddrInfo =NULL
     Exit Function
     End If
     '将IP字符串劈开成数组好进行处理
    tmpIpAddr = Split(IpAddrVal,".",-1,1)
     For ic = &H00 To Ubound(tmpIpAddr)
     '补位操作,保证每间隔满足3个字符
     Select Case Len(tmpIpAddr(ic))
     Case &H01 :charSpace = "00"
     Case &H02 :charSpace = "0"
     Case Else :charSpace = ""
     End Select
     tmpIpAddr(ic) = charSpace & tmpIpAddr(ic)
     Next
     IpAddrVal = tmpIpAddr(&H00) & "." & tmpIpAddr(&H01) & "." & tmpIpAddr(&H02) & "." & tmpIpAddr(&H03)
  
     '以下为查询,IP地址库基于《追捕》的IP数据库,感谢"冯志宏"先生的贡献
     '库结构如下:
     'CREATE TABLE [dbo].[wry] (
     ' [STARTIP] [nvarchar] (17) COLLATE Chinese_PRC_CI_AS NULL , --起始IP段
     ' [ENDIP] [nvarchar] (17) COLLATE Chinese_PRC_CI_AS NULL , --终止IP段
     ' [COUNTRY] [nvarchar] (16) COLLATE Chinese_PRC_CI_AS NULL , --国家或者地区
     ' [LOCAL] [nvarchar] (54) COLLATE Chinese_PRC_CI_AS NULL , --本地地址
     ' [THANK] [nvarchar] (23) COLLATE Chinese_PRC_CI_AS NULL --感谢修正IP地址用户姓名
     ') ON [PRIMARY]
     '经过分析库的数据存放结构,总结出准确的查询方法,具体看下面的查询过程
     tmpSQL = "select * from wry where (startIP<='" & IpAddrVal & "') and (ENDIP>='" & IpAddrVal & "') " & _
     " and left(startIP," & Len(tmpIpAddr(&H00)) & ") = '" & tmpIpAddr(&H00) & "'" & _
     " and left(endip," & Len(tmpIpAddr(&H00)) & ")='" & tmpIpAddr(&H00) & "'"
     charSpace = GetDbIpInfo(tmpSQL)
     If Len(charSpace)=&H00 Then
     GetIpAddrInfo = NULL
     Else
     GetIpAddrInfo = charSpace
     End If
     charSpace = Null
     tmpSQL = Null
     end function
     '────────────────────────────────
     ' 返回数据查询的字符
     Private function GetDbIpInfo(byVal sql)
     Dim OpenIpSearchRs
     Dim result
     Set OpenIpSearchRs = SQLExeCute(sql)
     If Not OpenIpSearchRs.Eof Then
     result = NullToSpace(OpenIpSearchRs("COUNTRY")) & "," & NullToSpace(OpenIpSearchRs("LOCAL")) & "," & NullToSpace(OpenIpSearchRs                    ("THANK"))
     Else
     result = NULL
     End If
     OpenIpSearchRs.Close
     Set OpenIpSearchRs=Nothing
     GetDbIpInfo = result
     End function
     '────────────────────────────────
     ' 将数据库空记录转换为空字符
     Private function NullToSpace(byVal rsStr)
     If isNull(rsStr) Then
     NullToSpace = ""
     Else
     NullToSpace = Trim(rsStr)
     End If
     End Function
    End Class
    %>
上一篇:黑软应用之木马 上    下一篇:ASP编写完整的IP所在地搜索类 中  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-5-23
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿