@@ 36,6 36,12 @@ module Mastodon
failed = 0
addresses.each do |address|
+ unless valid_ip_address?(address)
+ say("#{address} is invalid", :red)
+ failed += 1
+ next
+ end
+
ip_block = IpBlock.find_by(ip: address)
if ip_block.present? && !options[:force]
@@ 79,6 85,12 @@ module Mastodon
skipped = 0
addresses.each do |address|
+ unless valid_ip_address?(address)
+ say("#{address} is invalid", :yellow)
+ skipped += 1
+ next
+ end
+
ip_blocks = if options[:force]
IpBlock.where('ip >>= ?', address)
else
@@ 126,5 138,12 @@ module Mastodon
:red
end
end
+
+ def valid_ip_address?(ip_address)
+ IPAddr.new(ip_address)
+ true
+ rescue IPAddr::InvalidAddressError
+ false
+ end
end
end