将用户提供的IP地址和学校名称整理为标准CIDR格式的配置行。
每行输出格式为:
<IP/CIDR> 1; # <学校名称>
例如:
192.168.1.0/24 1; # 某学校
每行输出格式为:
<IP/CIDR>
例如:
192.168.1.0/24
用户输入格式不固定,可能的形式包括:
格式A:每行一个IP+学校名称
210.41.64.254 四川旅游学院
210.41.64.255 四川旅游学院
192.168.1.1 某学校
格式B:学校名称后跟多个IP
四川旅游学院
210.41.64.254
210.41.64.255
某学校
192.168.1.1
192.168.1.2
格式C:混合格式或其他合理格式
解析逻辑:
检查每个IP是否已包含CIDR后缀(如/32、/24):
/32对于同一个学校的多个IP地址:
merge-cidr.exe将范围转换为最优CIDR块按学校分组,输出格式化的配置行。
务必使用scripts目录中的merge-cidr.js,统一使用bun进行,使用前检查是否安装"cidr-tools",如果未安装,则使用bun进行安装,按照学校分组对每个学校的IP列表进行IP范围到CIDR的转换,不允许使用其他方式,入参参考下方示例并对整理成合适的格式:
用法:bun merge-cidr.js '<JSON字符串>'
输入格式:'{"学校名称":[ip列表]}'
示例:
bun merge-cidr.js '{"清华大学":["192.168.1.0/24","192.168.2.0/24"],"北京大学":["10.0.0.0/8"]}'
输入:
210.41.64.254 四川旅游学院
210.41.64.255 四川旅游学院
210.41.65.0 四川旅游学院
192.168.1.1 某学校
192.168.1.2 某学校
处理过程:
输出:
210.41.64.254/31 1; # 四川旅游学院
210.41.65.0/32 1; # 四川旅游学院
192.168.1.1/31 1; # 某学校
共 1 个版本