求帮忙换算几个带掩码格式的 IP 地址(求个鱼,渔我自己琢磨吧)

2014 年 11 月 29 日
 70599
就是这种192.168.1.0/24这样的格式。

请帮忙把下面的2个IP地址合并成1行带掩码格式的IP地址:
104.223.130.170
104.223.134.229

请帮忙把下面的4个IP地址合并成1行带掩码格式的IP地址:
104.127.92.146
104.127.92.246
104.127.93.119
104.127.94.204

谢谢各位朋友。
2936 次点击
所在节点    问与答
12 条回复
Automan
2014 年 11 月 29 日
全部换成二进制,看哪几位不同
Automan
2014 年 11 月 29 日
然后32-不同的位数
oott123
2014 年 11 月 29 日
Google:子网计算器
70599
2014 年 11 月 29 日
@Automan 感谢回复。

@oott123 用到了,谢谢。
scys
2014 年 11 月 29 日
随便换算?
1. 104.223.0.0/16
2. 104.127.0.0/16
嗯嗯,16直接上,保证包括了这几个段~
aa65535
2014 年 11 月 29 日
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
tywtyw2002
2014 年 11 月 29 日
没啥难度,bits操作写的比较乱,因为没啥好思路。
python下面ip解/打包可以用(?:un|)pack + socket.(?:ntoa|aton)来做

https://gist.github.com/tywtyw2002/9d09e22536c661fde556
70599
2015 年 1 月 15 日
@tywtyw2002 使用这个py计算['103.28.248.91', '103.28.249.91'],得到的结果是103.28.248.0/24,似乎包含不到103.28.249.91,为什么呢?
70599
2015 年 1 月 15 日
@tywtyw2002 感觉正确结果应该是103.28.248.0/23
70599
2015 年 1 月 15 日
@tywtyw2002 又把计算输入内容改成['103.28.248.91', '103.28.250.91']试了一下,这样可以得出103.28.248.0/23,可是这样又包含不到103.28.250.91了。
tywtyw2002
2015 年 1 月 22 日
@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))
70599
2015 年 1 月 22 日
@tywtyw2002 感谢回复。
计算结果正常了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/150203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX