gpt4 book ai didi

ruby - 在 Ruby 中创建 IP 地址范围

转载 作者:太空宇宙 更新时间:2023-11-03 17:21:58 24 4
gpt4 key购买 nike

假设我们在文本文件中有一个 IP 地址/ block 列表:

123.123.0.0
111.111.111.0
101.101.0.111

现在我想打印出所有可能的 IP 地址。例如上面列表中的第一项:

123.123.0.0
123.123.0.1
123.123.0.2
123.123.0.3
[...]
123.123.0.255
123.123.1.1
123.123.1.2
[...]
123.123.255.255

我在读写文件等方面不需要帮助。只是想不出如何打印出该 block /范围内的每个可能的 IP 地址。是否可以做一个 block 并让它用 x 替换 0 并保留 |x|,并在 1-255 之间打印 x?

最佳答案

require 'ipaddr'
puts IPAddr.new("123.123.0.0/16").to_range.to_a

如果您绝对必须在问题中使用模棱两可的“IP 定义范围”数据,

require 'ipaddr'
STDIN.read.each_line do |line|
num_zeroes = line[/(\.0)*$/].length / 2
ip_range_string = "#{line.chomp}/#{32 - num_zeroes * 8}"
puts IPAddr.new(ip_range_string).to_range.to_a
end

关于ruby - 在 Ruby 中创建 IP 地址范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33469882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com