| VB 源码 | VC 源码 | ASP源码 | JSP源码 | PHP源码 | CGI源码 | FLASH源码 | 素材模板 | C 源程序 | 站长工具 | 站长教程 |

ASP技术

ASP技术
PHP技术
JSP技术
VB技术
.NET技术

本类阅读TOP10

·ASP如何获取真实IP地址
·Asp中五种连接数据库的方法
·解密ASP源代码
·ASP编程技巧大全[1]
·快速打造留言本教程[1]
·ASP中也能解压缩rar文件
·浅谈如何建立三层体系结构的ASP应用程序(2)
·用ASP发送邮件
·浅谈如何建立三层体系结构的ASP应用程序(1)
·使ACCESS数据库保持同步

站内搜索

ASP编写完整的IP所在地搜索类(三)
' 通过上一步的验证,现在应该要检查小点是否有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
    %>


相关文章
  • 雅虎推出搜索子品牌 一搜网今天亮相
  • Google搜索技巧
  • ASP中使用组件搜索[1]
  • ASP中使用组件搜索[2]
  • ASP编写完整的IP所在地搜索类(一
  • ASP编写完整的IP所在地搜索类(二)
  • ASP编写完整的一个IP所在地搜索类
  • 相关软件

  • 一个数据库搜索  
  • 小巧而功能强大的搜索引擎  
  • SFE 网站内容搜索脚本  
  • 很好的搜索站台程式  
  • 网虫搜索引擎  
  • 搜索引擎脚本  
  • 搜索服务器运行服务  
  • 搜索并替换文件中指定的字串  
  • 以文本文件为基础的PHP搜索引擎源代码  
  • web搜索程序,用到了MySQL,PHP  

  • 下载首页关于我们广告服务联系方式常见问题隐私声明法律条款本站声明下载帮助发布软件站点地图谷歌卫星地图