asp下IP地址分段计算函数

时间:2022-02-23 23:19:01

IP地址分段计算 
<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,max 
iptemp = split(ipstr&".",".") 
max = ubound(iptemp) 
if max <> 4 then 
exit function 
end if 

dim a,b,i 
a = "&H" 
for i = 0 to 3 
b = Hex(iptemp(i)) 
if len(b) = 1 then 
b = "0"&b 
end if 
a = a&b 
next 
ip2int = CLng(a) 
end function 

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

dim testIP,testInt 
testIP="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>" 
%>