转:关于IP验证的一个例子    shangdidewusheng(原作)
平时感觉Windows的IP输入框很好用,如果再网页中也能实现一定是很爽的事情。核心代码如下:<script language="javascript">
function outStr(){
 if(document.all.ip1.value>0 && document.all.ip2.value>0 && document.all.ip3.value>0 && document.all.ip4.value>0){
  alert("你输入的IP地址为:" + document.all.ip1.value + "." + document.all.ip2.value + "." + document.all.ip3.value + "." + document.all.ip4.value);
 }//end if
}//end
function moveRight(obj){
 id = parseInt(obj.name.substr(2,1))
 if(id<4){
  eval("document.all.ip" + (id +1) + ".focus()");
 }else{
  outStr();
 }//end if
}
function moveLeft(obj){
 id = parseInt(obj.name.substr(2,1))
 if(id>1){
  eval("document.all.ip" + (id -1) + ".focus()");
 }//end if
}//end if
function Keypress(obj){
 var objInput = obj;
 cod = window.event.keyCode;
 
 if(cod==46 && (obj.value).length>0){//如果按了“.”并且有了一个字符,向右移动一次
  window.event.keyCode=0;
  moveRight(obj);
 }else if((obj.value).length==2 && (cod >= 48) && (cod <= 57)){//如果数字键并且够了两位
  if(cod<58){//
   obj.value = obj.value * 10 + cod - 48;
  }//end if
  window.event.keyCode = 0;
  moveRight(obj);
 }else{ //判断输入的是不是数字
  if ( !(((cod >= 48) && (cod <= 57)) || (cod == 13) || (cod == 37) || (cod == 39))){
   window.event.keyCode = 0;
  }//end if
 }//end if
}//end function keydown
function getCaretPos(obj){
 var currentRange=document.selection.createRange();
 var workRange=currentRange.duplicate();
 obj.select();
 var allRange=document.selection.createRange();
 var len=0;
 while(workRange.compareEndPoints("StartToStart",allRange)>0){
  workRange.moveStart("character",-1);
  len++;
 }
 currentRange.select();
 return len;
}//end
function KeyDown(obj){
 cod = window.event.keyCode;
 i = getCaretPos(obj); //光标位置
 n = obj.value.length; //字符长度
 
 if(cod==37 && i==0){//光标左移
  moveLeft(obj);
 }else if(cod==39 && i>=n){
  moveRight(obj);
 }else if(cod==8 && (obj.value=="" || i==0)){
  moveLeft(obj);
 }//end if
}//end
function checkDate(obj,max_num){
 if(obj.value>max_num || obj.value<0){
  window.event.keyCode = 0;
  alert(obj.value + "是无效的项目,只能输入0到" + max_num + "之间的数。");
  obj.value = max_num;
  obj.focus();
  obj.select();
 }//end if
}//end
</script>测试网址:http://www.yemaweb.com/test/ipv1.0.htm

解决方案 »

  1.   

    <%
       sub chkIP(boardid)
          dim rsIP
          dim ipArr
          dim ignored
          dim i
          dim ip
          dim sql      ip=Request.ServerVariables("REMOTE_ADDR")      
          ignored=false
          if not isempty(boardid) then      
             sql="select ignoreip from board where boardid="&cstr(boardid)
             set rsIP=conn.execute(sql)
             if not (rsIP.eof and rsIP.bof) then 
                if instr(cstr(rsIP("ignoreip")&""),chr(13)&chr(10)) then 
                   iparr=split(rsIP("ignoreip"),chr(13)&chr(10))
                   for i=0 to ubound(iparr)
                       if trim(iparr(i))<>"" and left(ip,len(trim(iparr(i))))=trim(iparr(i))  then 
                          ignored=true
                          exit for
                       end if
                   next
                else
                   iparr=rsIP("ignoreip")
                   if ip=trim(iparr) then 
                      ignored=true
                   end if
                end if
             end if
             rsIP.close
          end if
          if ignored then 
             response.write "<script language=javascript>window.location.href='ignoreip.htm'</script>"
          end if
      end sub
    %>
      

  2.   

    function checkIP2(sIPAddress) 

    var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; 
    var reg = sIPAddress.match(exp); 
    var ErrMsg="你输入的是一个非法的IP地址段!\nIP段为::xxx.xxx.xxx.xxx(xxx为0-255)!" 
    var Msg="你输入的是一个合法的IP地址段!" 
    if(reg==null) 

    alert(ErrMsg); 

    else 

    alert(reg);