Расчет сегментации IP -адреса
<scriptlanguage = "jscript" runat = "server">
functionipdecode (eip) {
varip1, ip2, ip3, ip4;
IP1 = MoveByter (EIP & 0xff00000000,3);
IP2 = MoveByter (EIP & 0x00ff0000,2);
IP3 = MoveByter (EIP & 0x0000fff00,1);
Ip4 = eip & 0x000000ff;
returnip1+"."+ip2+"."+ip3+"."+ip4;
}
functionmovebytel (num, bytenum) {
returnnum << = (bytenum*8)
}
functionmovebyter (num, bytenum) {
returnnum >>> = (Bytenum*8)
}
</script>
В VBS нет никакой битной работы, поэтому не очень хорошо использовать JS и VBS на странице. Это также нормально, если вы используете VBS, но это немного многослов. И одна вещь немного заметна. Если вы разделите ("202.102.29.6", ".") В VBS вы получите три числа 202, 102 и 29, и вы не получите последние 6, поэтому вам нужно изменить IP на разделение («202.102.29.6" & "."
Я сделал это с VBS, и, поскольку нет никакой битовой работы, это более хлопотно
<%
functionip2int (ipstr)
Dimiptemp, макс
iptemp = split (ipstr & ".", ".")
max = ubund (iptemp)
ifmax <> 4then
Выходная функция
эндиф
Дима, б, я
a = "& h"
fori = 0to3
b = hex (iptemp (i))
iflen (b) = 1then
b = "0" & b
эндиф
A = A & B.
следующий
ip2int = clng (a)
конечная функция
functionInt2ip (ip)
Dimiptemp, A, Ipstr, I, длина
iptemp = hex (ip)
Длина = 8-Len (iptemp)
fori = 1tolength
iptemp = "0" & iptemp
следующий
a = слева (iptemp, 2)
a = "& h" & a
i = cint (a)
a = cstr (i)
ipstr = a & "."
a = середина (iptemp, 3,2)
a = "& h" & a
i = cint (a)
a = cstr (i)
ipstr = ipstr & a & "."
a = середина (iptemp, 5,2)
a = "& h" & a
i = cint (a)
a = cstr (i)
ipstr = ipstr & a & "."
a = справа (iptemp, 2)
a = "& h" & a
i = cint (a)
a = cstr (i)
ipstr = ipstr & a
int2ip = ipstr
конечная функция
DimTestip, Testint
testip = "202.102.29.6"
testint = ip2int (testip)
response.writetStip & "WillBeEncodedto <fontcolor = red>" & testint & "</font> <br>"
response.writetStip & "willbedencodedto <fontcolor = red>" & int2ip (testint) & "</font> <br>"