1
hiplon 2020-04-04 11:35:14 +08:00
排个序找到最大最小就很好算了
|
2
ihciah 2020-04-04 11:43:06 +08:00 via iPhone
先转成 /24,再用开源工具合并?
|
3
0ZXYDDu796nVCFxq 2020-04-04 11:58:20 +08:00 via Android 1
把最后一位替换成 0/24,然后去重
|
4
Livid MOD 变成十进制,然后减去 % 256 的结果放进一个 set,最后 set 里的数字转回 IP 就是所有的 /24
|
5
samuel 2020-04-04 12:37:16 +08:00
#! python3
import struct import socket import sys cidr = set() mask = int('0xFFFFFF00', 16) for line in sys.stdin: b = struct.unpack('!I', socket.inet_aton(line))[0] cidr.add(b & mask) for c in cidr: print(socket.inet_ntoa(struct.pack("!I", c)) + '/24') |
6
V69EX 2020-04-04 12:50:08 +08:00
@samuel 楼主提 CIDR 的意思,我觉得应该是可变长的掩码,不是固定的 /24,固定长度的掩码,就没必要提 CIDR 了……
|
7
ladeo 2020-04-04 12:50:10 +08:00 via Android
excel 就可以了吧
|
8
xiadong1994 2020-04-04 12:53:46 +08:00 via iPhone
最长公共前缀子串
|
11
webshe11 2020-04-04 14:02:44 +08:00
看着跟 CCF 认证 201812-3 题 CIDR 合并 一样
http://118.190.20.162/view.page?gpid=T82 |
12
RickyHao 2020-04-04 14:23:58 +08:00 via Android 1
import netaddr
cidr_list = netaddr.cidr_merge(ip_list) |
13
Laynooor 2020-04-04 14:34:17 +08:00
apt install aggregate
yum install aggregate |
14
matrix67 2022-02-18 09:55:06 +08:00
|