当前位置: 首页 > 图文教程 > 网络编程 > ASP > IP地址分段计算

ASP
分享一段代码show.asp?id=26变成show/?26的形式
多域名一网站时如果返回最原来的域名
[原创]完美解决ASP 不能更新。数据库或对象为只读。
5天学会asp
TSYS中生成静态页时溢出: ''CInt''
对象标记具有无效的 ''MSWC.MyInfo'' ProgID
[原创]随机增加网站点击的一个不错的方法
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
反SPAM新思路—换Z-BLOG的验证码!
七步倒┈→专用asp后门
asp下实现代码的“运行代码”“复制代码”“保存代码”功能源码
使用ASP实现网站的“目录树”管理的代码
ShowPage 显示“上一页 下一页”等信息的封装代码
[原创]站长感慨asp编程究竟何去何从
响应对象 错误 ''ASP 0185 : 80020003'' 缺少默认属性
[原创]asp下用实现模板加载的的几种方法总结
[原创]asp获取URL参数的几种方法分析总结
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
ASP程序中输出Excel文件实例一则
ASP应用中如何限制同一表单被多次提交

ASP 中的 IP地址分段计算


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 121 ::
收藏到网摘: n/a

<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>"
%>