🖥

Ruby - IPアドレスがサブネット指定に含まれるか判定する例

に公開

IPAddr.new("127.0.0.1/31").include?('127.0.0.1') # true

IPAddr.new("127.0.0.1/31").include?('127.0.0.0') # true

IPAddr.new("127.0.0.1/32").include?('127.0.0.1') # true

IPAddr.new("127.0.0.1/32").include?('127.0.0.0') # false

IPアドレス範囲の確認例

IPAddr.new("127.0.0.1/32").to_range.to_a.map { |ip| ip.to_s }
# ["127.0.0.1"]

IPAddr.new("127.0.0.1/31").to_range.to_a.map { |ip| ip.to_s }
# ["127.0.0.0", "127.0.0.1"]

IPAddr.new("127.0.0.1/30").to_range.to_a.map { |ip| ip.to_s }
# ["127.0.0.0", "127.0.0.1", "127.0.0.2", "127.0.0.3"]

参考

https://docs.ruby-lang.org/ja/latest/class/IPAddr.html

公開日時

2025-04-17

https://qiita.com/YumaInaura/items/3ee28b079d61440dba43

Discussion