0

我正在寻找一种方法来读取 CIDR 地址列表并将它们转换为二进制字符串。输入是一个文件,其中包含多行操作、地址和目的地:

ADD 192.168.20.16/28 A

FIND 255.255.255.0

REMOVE 192.168.20.16/28 A

如何将这些地址转换为二进制?例如:

192.168.20.19111000000.10101000.00010100.10111111

192.168.20.16/2811000000.10101000.00010100.00010000

192.168.0.0/1611000000.10101000.00000000.00000000

4

1 回答 1

0

这里


function dec2bin(dec){
    return dec.toString(2);
}

const ips = ["192.168.20.191", "192.168.20.16", "192.168.0.0"]

ips.forEach((ip, index) => {
  const parts = ip.split(".")
  
  const newParts = []
  parts.forEach(part => {
    newParts.push(dec2bin(parseInt(part)))
  })
  
  ips[index] = newParts.join(".")
})

console.log(ips)

它并不完美,因为左侧的零被省略了,但您可以改进此解决方案。

于 2020-07-27T02:15:32.730 回答