如何在Node.js中将连字符格式的IP范围转换为CIDR?
Node.js实现连字符IP范围转CIDR表示法
你需要将连字符格式的IP范围(如70.103.242.28-70.103.242.30)转换为CIDR表示法,且希望使用现成库而非自行开发。以下是符合需求的解决方案:
推荐库:ip-range-to-cidr
这个npm包专门实现了IP范围到CIDR的汇总转换,完全匹配你需要的功能,无需自行处理位运算或IP解析逻辑。
使用步骤:
- 安装依赖:
npm install ip-range-to-cidr
- 代码示例:
const convertIpRangeToCidr = require('ip-range-to-cidr'); // 输入连字符格式的IP范围 const inputRange = '70.103.242.28-70.103.242.30'; // 转换为CIDR数组 const cidrList = convertIpRangeToCidr(inputRange); // 输出结果:70.103.242.28/31, 70.103.242.30/32 console.log(cidrList.join(', '));
替代库:cidr-summarize
如果需要更灵活的IP范围处理(比如支持IPv6),可以使用cidr-summarize:
使用步骤:
- 安装依赖:
npm install cidr-summarize
- 代码示例:
const { summarizeRange } = require('cidr-summarize'); const [startIp, endIp] = '70.103.242.28-70.103.242.30'.split('-'); const cidrList = summarizeRange(startIp, endIp); console.log(cidrList.join(', ')); // 输出目标CIDR字符串
这两个库都能实现类似Python ipaddress.summarize_address_range的功能,无需自行开发核心逻辑。
内容的提问来源于stack exchange,提问作者Zhenya
相关产品推荐
相关产品推荐

