IP地址分段计算

    技术2022-05-11  26

    /* written by Jaron ,2000-01-10 *//* 原出处:江都资讯网 http://www.jiangdu.net *//* 转载请注明出处和保留此版权信息 *//* 欢迎使用SiteManager网站管理系统 http://sitemanager.cnzone.net  *//*相关文章:http://www.csdn.net/Develop/read_article.asp?id=19652*/<script language="JScript" Runat="Server"> function IPDeCode(EIP){   var Ip1,Ip2,Ip3,Ip4;   Ip1 = moveByteR(EIP & 0xff000000,3);   Ip2 = moveByteR(EIP & 0x00ff0000,2);   Ip3 = moveByteR(EIP & 0x0000ff00,1);   Ip4 = EIP & 0x000000ff;   return  Ip1 + "." + Ip2 + "." + Ip3 + "." + Ip4; }

     function moveByteL(num,bytenum){  return num <<= (bytenum*8) }

     function moveByteR(num,bytenum){  return num >>>= (bytenum*8) } </script>

    在vbs中没有位操作,这样在一个页面中用到了js和vbs,并不好,如果用vbs也可以,不过罗嗦了一些,而且有一点注意,如果在vbs中split("202.102.29.6",","),会得到202,102,29三个数,得不到最后一个6,所以需要将ip换成split("202.102.29.6" & ".",",")我用vbs做的,由于没有位操作,所以做得比较麻烦<%function ip2int(ipstr)dim iptemp,maxiptemp = split(ipstr&".",".")max = ubound(iptemp)if max <> 4 thenexit functionend if

    dim a,b,ia = "&H"for i = 0 to 3b = Hex(iptemp(i))if len(b) = 1 thenb = "0"&bend ifa = a&bnextip2int = CLng(a)end function

    function int2ip(ip)dim iptemp,a,ipstr,i,lengthiptemp = Hex(ip)length = 8 - len(iptemp)for i = 1 to lengthiptemp = "0" & iptempnexta = left(iptemp,2)a = "&H" & ai = CInt(a)a = CStr(i)ipstr = a & "."a = mid(iptemp,3,2)a = "&H" & ai = CInt(a)a = CStr(i)ipstr = ipstr & a & "."a = mid(iptemp,5,2)a = "&H" & ai = CInt(a)a = CStr(i)ipstr = ipstr & a & "."a = right(iptemp,2)a = "&H" & ai = CInt(a)a = CStr(i)ipstr = ipstr & aint2ip = ipstrend function

    dim testIP,testInttestIP="202.102.29.6"testInt = ip2int(testIP)response.write testIP & " will be encoded to <font color=red>" & testInt & "</font><br>"response.write testIP & " will be dencoded to <font color=red>" & int2ip(testInt) & "</font><br>"%>


    最新回复(0)