1
Automan 2014-11-29 14:25:58 +08:00
全部换成二进制,看哪几位不同
|
2
Automan 2014-11-29 14:26:11 +08:00
然后32-不同的位数
|
3
oott123 2014-11-29 15:00:28 +08:00 via Android
Google:子网计算器
|
5
scys 2014-11-29 16:07:13 +08:00
随便换算?
1. 104.223.0.0/16 2. 104.127.0.0/16 嗯嗯,16直接上,保证包括了这几个段~ |
6
aa65535 2014-11-29 16:07:45 +08:00
104.223.128.0/21 104.223.128.1 - 104.223.135.254
104.127.92.0/22 104.127.92.1 - 104.127.95.254 |
7
tywtyw2002 2014-11-29 17:09:57 +08:00 1
没啥难度,bits操作写的比较乱,因为没啥好思路。
python下面ip解/打包可以用(?:un|)pack + socket.(?:ntoa|aton)来做 https://gist.github.com/tywtyw2002/9d09e22536c661fde556 |
8
70599 OP @tywtyw2002 使用这个py计算['103.28.248.91', '103.28.249.91'],得到的结果是103.28.248.0/24,似乎包含不到103.28.249.91,为什么呢?
|
9
70599 OP @tywtyw2002 感觉正确结果应该是103.28.248.0/23
|
10
70599 OP @tywtyw2002 又把计算输入内容改成['103.28.248.91', '103.28.250.91']试了一下,这样可以得出103.28.248.0/23,可是这样又包含不到103.28.250.91了。
|
11
tywtyw2002 2015-01-22 11:55:26 +08:00 1
@70599
print "%s/%d" % (r_x(x(l[0]) & (2 ** 32 - 1) << mask), (32 - mask)) 改成 print "%s/%d" % (r_x(x(l[0]) & (2 ** 32 - 1) << mask), (31 - mask)) |
12
70599 OP @tywtyw2002 感谢回复。
计算结果正常了。 |