当前位置:中国站长下载文章中心网页编程ASP编程 → 纯ASP(VBscript)写的全球IP地址搜索程序(2)

纯ASP(VBscript)写的全球IP地址搜索程序(2)

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-13 0:21:09
     re1.global=false
   re1.Ignorecase=false
   checkiplocal=re1.test(checkstring)
   set re1=nothing
  end function
  '//////////////////////////////////////////////////////////////////////
  function checkip_remote(checkstring)
   dim iplength 'IP字符串的长度
   dim locations '"."字符出现的位置
   iplength=Len(checksting)
   locations=Instr(checkstring,".") '从左到右检索“.”符号在IP字符串中第一次出现的位置
   '以“.”字符将IP分割为4段
   locations2=iplength-locations
   ipstring1=Left(checkstring,locations)
   ipstring2=Right(checkstring,locations2)
  end function
  '/////////////////////////////////////////////////////////
  '/////////////////////////////////////////////////////////
  ipinfo_local="您的IP是内部网IP!"
   ipinfo_remote="外部网IP!"
   getip=checkip_trueip()
   currentip=checkiplocal(getip) '调用checkiplocal()函数对得到的IP进行检查,确定是内部网地址还是外部网地址
   'if currentip=true then'测试代码
   'response.Write(ipinfo_local)
   if currentip=true then '为假
   response.Write(ipinfo_local)'说明为内部网IP
   else
   '进行转换
   '以下为循环提取并按位补0将IP分为4段
   locations=checkip_locations(getip)'取得“.”在第一次分割前在IP中第一次出现的位置
   iplength=Len(getip) '取得客户端IP的长度
   divide_locations=iplength-locations '取得将客户端IP从右向左数到IP从左往右数第一个“.”的位置
   ipstr1=Trim(Replace(Left(getip,locations),".",""))
   ipstr2=Right(getip,divide_locations)'取得第一次分割后客户端右边剩下的数值
   '如果IP分为4段后每一段不足3位则补0
   if Len(ipstr1)="2" then ipstr1="0"&ipstr1 '长度为二,不足三位,在字符串之前补一个0
   if Len(ipstr1)="3" then ipstr1=ipstr1 '据上类推
   if Len(ipstr1)="1" then ipstr1="00"&ipstr1 '这时的ipstr1为IP的第一段
  
   ipstr12=checkip_right(ipstr2) '这时的ipstr12为IP的第二段
   ipstr122=checkip_left(ipstr2)
   ipstr13=checkip_right(ipstr122) '这时的ipstr13为IP的第三段
   ipstr14=checkip_left(ipstr122) '这时的ipstr14为IP的第四段
   if Len(ipstr14)="1" then ipstr14="00"&ipstr14 '对得到的IP的第四段进行补0,此步骤可不要
   if Len(ipstr14)="2" then ipstr14="0"&ipstr14
   if Len(ipstr14)="3" then ipstr14=ipstr14
  
   'response.write ipstr1&"<br>" '写出IP分割后的每段的值
   'response.write ipstr12&"<br>"
   'response.write ipstr13&"<br>"
   'response.write ipstr14
   allip=ipstr1&"."&ipstr12&"."&ipstr13&"."&ipstr14
   finishgetip=left(allip,11)
   dim ipaddr,iplocal,sqls
   '以下SQL语句为提取startip字段左边11位值是否等于客户端IP的左边的11位的值
   sqls="SELECT country_state,areauser FROM ip WHERE Left(startip,11)='"&finishgetip&"'"
   set rs=getaccessrecordset("#worldip.mdb",sqls,"1","1") '得到查询值
   if rs.eof then '如果没找到与客户端IP相等的值
   showip=checkip_trueip() '把客户端IP赋予showip
   ipaddr="未知地区" '国家或省份
   iplocal="未知地点" '具体的地方
   else
   showip=checkip_trueip()
   ipaddr=rs("country_state")
   iplocal=rs("areauser")
   end if
   'response.write("您的IP是:"&showip&" ")
   'response.write("您来自:"&ipaddr&" ")
   'response.write("您是:"&iplocal)
   rs.close
   set rs=nothing
   %>
   <%="您的IP是:"&showip&" "%>
   <%="您来自:"&ipaddr&" "%>
   <%="您是:"&iplocal&"<br>"%>
  
  如果IP地址有错误,请与我联系,或下载数据库更正,谢谢!<br>
  <table width="760" border="0" cellspacing="0" cellpadding="0">
   <tr>
   <td width="203"><a href="Script56.rar">下载Script56.CHM</a>-->1.34M</td>
   <td width="548">简介:Microsoft的帮助文档,有VBscript语法,JScript语法,正则表达式  </td>
   <td width="3"> </td>
   <td width="6"> </td>
   </tr>
   <tr>
   <td> </td>
   <td> </td>
   <td> </td>
   <td> </td>
   </tr>
   <tr>
   <td><a href="ipsearch.rar">下载ASP全球IP地址搜索程序</a></td>
   <td>ASP+ACCESS    大小401K;格式rar</td>
   <td> </td>
   <td> </td>
   </tr>
   <tr>
   <td> </td>
   <td><font color="#000099"> </font> <font color="#0000FF"> </font></td>
   <td> </td>
   <td> </td>
   </tr>
   <tr>
   <td>如果你的IP是未知,如果你愿意,请提交你的所在地:</td>
   <td>
   <form name="form1" method="post" action="postip.asp">
   <table width="100%" border="1" cellspacing="0" cellpadding="0">
   <tr>
   <td width="21%"> 省份: </td>
   <td width="44%">
   <input type="text" name="country_state">
   </td>
   <td width="35%"> </td>
   </tr>
   <tr>
   <td width="21%">具体所在地或是什么网的用户:</td>
   <td width="44%">
   <input type="text" name="areauser">
   </td>
   <td width="35%">例如:北京清华大学或北京网通用户</td>
   </tr>
   <tr>
   <td width="21%"> </td>
   <td width="44%">
   <input type="hidden" name="startip" value="<%=finishgetip&".000"%>">
   <input type="hidden" name="endip" value="<%=finishgetip&".255"%>">
   </td>
   <td width="35%"> </td>
   </tr>
   <tr>
   <td width="21%"> </td>
   <td width="44%">
   <input type="submit" name="Submit" value="提交">
   </td>
   <td width="35%"> </td>
   </tr>
   </table>
   </form>
   </td>
   <td> </td>
   <td> </td>
   </tr>
  </table>
   <%
   end if
   %>
  </body>
  </html>
  
  演示地址:http://www.knowsky.com/ip
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。