なので以下のような手段でチェックしてみました。
https://github.com/bluemonk/ipaddress
のipaddressというのを利用します。
インストールは
gem install ipaddress
でOKです。
以下のような感じでチェックして見ました。
require 'ipaddress'
#IPアドレスチェック
def check_ip
begin
IPAddress::IPv4.new ip
rescue
return false
end
true
end
#サブネットマスクチェック
def check_mask
begin
IPAddress::IPv4.new "10.0.0.1/#{mask}"
rescue
return false
end
true
end
#MACアドレスチェック
#これは正規表現を使っています
def check_mac
if /^([0-9A-F]{2}:){5}[0-9A-F]{2}$/ =~ mac.upcase
true
else
false
end
end
#ブロードキャストアドレス取得
def get_broadcast(ip,mask)
ipa = IPAddress::IPv4.new "#{ip}/#{mask}"
ipa.broadcast.address
end
ブロードキャストアドレス取得以外は、rubyで普通に使えるipaddrでも似たようなことはできるような木はします。