求CIDR转换成子网掩码的ASP正则表达式。

tsxnb 2009-07-28 08:27:43
求CIDR转换成子网掩码的ASP正则表达式。
例如,10.119.184.8/32转算成10.119.184.8/255.255.255.255,10.119.184.0/24转算成10.119.184.0/255.255.255.0,10.111.222.8/0转算成10.111.222.8/0.0.0.0等等。

子网掩码与CIDR名称对应表:
255.255.255.255 /32
255.255.255.254 /31
255.255.255.252 /30
255.255.255.248 /29
255.255.255.240 /28
255.255.255.224 /27
255.255.255.192 /26
255.255.255.128 /25
255.255.255.0 /24
255.255.254.0 /23
255.255.252.0 /22
255.255.248.0 /21
255.255.240.0 /20
255.255.224.0 /19
255.255.192.0 /18
255.255.128.0 /17
255.255.0.0 /16
255.254.0.0 /15
255.252.0.0 /14
255.248.0.0 /13
255.240.0.0 /12
255.224.0.0 /11
255.192.0.0 /10
255.128.0.0 /9
255.0.0.0 /8
254.0.0.0 /7
252.0.0.0 /6
248.0.0.0 /5
240.0.0.0 /4
224.0.0.0 /3
192.0.0.0 /2
128.0.0.0 /1
0.0.0.0 /0
...全文
374 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsxnb 2009-07-29
  • 打赏
  • 举报
回复
把这帖结了,到新帖继续边学边做---限制IP的ASP函数:

http://topic.csdn.net/u/20090729/16/bf12efd2-58a9-47f7-bb5e-cf6d2d87a8a3.html?31630
tsxnb 2009-07-29
  • 打赏
  • 举报
回复
发现了个简便的换算方法,例如:

子网掩码/255.255.255.128换算成十进制是255*256*256*256+255*256*256+255*256+128=4294967168
相应的CIDR /25换算成十进制是2^32-2^(32-25)=4294967168

子网掩码换算表
CIDR名称 换算公式 十进制 子网掩码
/32 2^32-2^(32-32) 4294967295 255.255.255.255
/31 2^32-2^(32-31) 4294967294 255.255.255.254
/30 2^32-2^(32-30) 4294967292 255.255.255.252
/29 2^32-2^(32-29) 4294967288 255.255.255.248
/28 2^32-2^(32-28) 4294967280 255.255.255.240
/27 2^32-2^(32-27) 4294967264 255.255.255.224
/26 2^32-2^(32-26) 4294967232 255.255.255.192
/25 2^32-2^(32-25) 4294967168 255.255.255.128
/24 2^32-2^(32-24) 4294967040 255.255.255.0
/23 2^32-2^(32-23) 4294966784 255.255.254.0
/22 2^32-2^(32-22) 4294966272 255.255.252.0
/21 2^32-2^(32-21) 4294965248 255.255.248.0
/20 2^32-2^(32-20) 4294963200 255.255.240.0
/19 2^32-2^(32-19) 4294959104 255.255.224.0
/18 2^32-2^(32-18) 4294950912 255.255.192.0
/17 2^32-2^(32-17) 4294934528 255.255.128.0
/16 2^32-2^(32-16) 4294901760 255.255.0.0
/15 2^32-2^(32-15) 4294836224 255.254.0.0
/14 2^32-2^(32-14) 4294705152 255.252.0.0
/13 2^32-2^(32-13) 4294443008 255.248.0.0
/12 2^32-2^(32-12) 4293918720 255.240.0.0
/11 2^32-2^(32-11) 4292870144 255.224.0.0
/10 2^32-2^(32-10) 4290772992 255.192.0.0
/9 2^32-2^(32-9) 4286578688 255.128.0.0
/8 2^32-2^(32-8) 4278190080 255.0.0.0
/7 2^32-2^(32-7) 4261412864 254.0.0.0
/6 2^32-2^(32-6) 4227858432 252.0.0.0
/5 2^32-2^(32-5) 4160749568 248.0.0.0
/4 2^32-2^(32-4) 4026531840 240.0.0.0
/3 2^32-2^(32-3) 3758096384 224.0.0.0
/2 2^32-2^(32-2) 3221225472 192.0.0.0
/1 2^32-2^(32-1) 2147483648 128.0.0.0
/0 2^32-2^(32-0) 0 0.0.0.0



  • 打赏
  • 举报
回复
这个你用split分割保存到数组arr中,然后取arr(1),再做处理
tsxnb 2009-07-29
  • 打赏
  • 举报
回复
用ASP编写一个信息管理系统,要求后台登录的管理用户与固定IP绑定,前台部份网页只允许特定部门(范围IP)的用户浏览。

于是编写了一个限制IP地址的ASP函数,能同时支持如下格式的IP地址范围:

*宽范围,例如:10.11*.*.*,10.22.33.*
-之间,例如:10.111.222.0-31,10.111.200-230.0
~区间,例如:10.111.222.222~10.222.111.111
/子网掩码,例如:10.111.222.0/255.255.255.0,10.111.222.40/255.255.255.224
/CIDR,例如:10.111.222.0/23,10.111.222.40/27

见:http://blog.csdn.net/tsxnb/archive/2009/06/23/4291710.aspx

目前未完成对/子网掩码 的处理
tsxnb 2009-07-28
  • 打赏
  • 举报
回复
而且,已经表示成子网掩码的形式(例如11.22.33.44/255.255.248.0)就保持不变,不用换算。
  • 打赏
  • 举报
回复
这个正则无法实现吧

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧