Ruby / Railsで文字列がIPアドレスとして適切かどうかチェックする

概要

最近、ある文字列がIPアドレスとして適切かどうかチェックする方法を調べる機会があったので、その結果を備忘録としてここにメモしておきます。

実装

正規表現を考えるのは面倒だったので、Rubyの標準ライブラリであるIPAddrを使いました。

引数の文字列がIPアドレスとして適切かどうか調べるvalid_ip?メソッドは以下のようになる。

require 'ipaddr'

def valid_ip?(str)
  !!IPAddr.new(str) rescue false
end

Railsでは、requireせずにIPAddrクラスを使うことができるみたいです。

実行結果

p valid_ip?("192.168.2.0")
# => true
p valid_ip?("192")
# => false

参考