IP地址分段计算
2018-09-06 11:34
<scriptlanguage=JScriptRunat=Server>
functionIPDeCode(EIP){
varIp1,Ip2,Ip3,Ip4;
Ip1=moveByteR(EIP0xff000000,3);
Ip2=moveByteR(EIP0x00ff0000,2);
Ip3=moveByteR(EIP0x0000ff00,1);
Ip4=EIP0x000000ff;
returnIp1+.+Ip2+.+Ip3+.+Ip4;
}
functionmoveByteL(num,bytenum){
returnnum<<=(bytenum*8)
}
functionmoveByteR(num,bytenum){
returnnum>>>=(bytenum*8)
}
</script>
在vbs中没有位操作,这样在一个页面中用到了js和vbs,并不好,如果用vbs也可以,不过罗嗦了一些,而且有一点注意,如果在vbs中split(202.102.29.6,.),会得到202,102,29三个数,得不到最后一个6,所以需要将ip换成split(202.102.29.6.,.)
我用vbs做的,由于没有位操作,所以做得比较麻烦
<%
functionip2int(ipstr)
dimiptemp,max
iptemp=split(ipstr.,.)
max=ubound(iptemp)
ifmax<>4then
exitfunction
endif
dima,b,i
a=H
fori=0to3
b=Hex(iptemp(i))
iflen(b)=1then
b=0b
endif
a=ab
next
ip2int=CLng(a)
endfunction
functionint2ip(ip)
dimiptemp,a,ipstr,i,length
iptemp=Hex(ip)
length=8-len(iptemp)
fori=1tolength
iptemp=0iptemp
next
a=left(iptemp,2)
a=Ha
i=CInt(a)
a=CStr(i)
ipstr=a.
a=mid(iptemp,3,2)
a=Ha
i=CInt(a)
a=CStr(i)
ipstr=ipstra.
a=mid(iptemp,5,2)
a=Ha
i=CInt(a)
a=CStr(i)
ipstr=ipstra.
a=right(iptemp,2)
a=Ha
i=CInt(a)
a=CStr(i)
ipstr=ipstra
int2ip=ipstr
endfunction
dimtestIP,testInt
testIP=202.102.29.6
testInt=ip2int(testIP)
response.writetestIPwillbeencodedto<fontcolor=red>testInt</font><br>
response.writetestIPwillbedencodedto<fontcolor=red>int2ip(testInt)</font><br>
%>
下一篇:asp与js的类型转换函数介绍