我有一個數組包含子網,其中一個子網錯誤(缺少一個八位字節),我想合併它們並忽略錯誤的。如何合併IP地址並忽略錯誤的IP地址Ruby
我有以下代碼:
subnets = ["149.62.168.0/24"], ["134.247.2.0/24"], ["159.226.92.0/24","159.8.57/22"]
require 'netaddr'
subnet.each do |net|
begin
merged_subnets = NetAddr.merge(net)
rescue ArgumentError => error
puts error
end
puts merged_subnets
end
此代碼給我下面的輸出:
149.62.168.0/24
134.247.2.0/24
One of the provided CIDR addresses raised the following errors: 159.8.57 is invalid (IPv4 requires (4) octets).
然而,我所期待的是:
149.62.168.0/24
134.247.2.0/24
159.226.92.0/24
One of the provided CIDR addresses raised the following errors: 159.8.57 is invalid (IPv4 requires (4) octets).
我不不明白爲什麼子網159.226.92.0/24沒有出現在t他輸出。
技術上說,應該是'subnets = [[「149 ...」],[...],...],其中有周圍的方括號。你在那裏工作,但它是誤導。你實際創建數組的數組。 'flatten'可以幫助遍歷所有的單個元素。 – tadman