photo credit: Broken Bus Stop via photopin (license) Railsでアプリを作っていると、IPアドレスやMACアドレスのバリデーションをしたくなることがあります。 SQLサーバには、IPアドレスやMACアドレスに特化した型はないので、stringで保持してRails側のバリデーションで 整合性を取る必要があります。 そんな場合の、(たぶん)ベストプラクティス。 IPアドレスのバリデーションには、RubyのリゾルバライブラリであるResolvクラスを使うのが良いみたい。 Resolv::IPv6::Regexを使えば、IPv6のバリデーションもできる。 MACアドレスのバリデーションには、Resolv::IPv4::Regexのような便利なものはないので、 正規表現をベタ書きで対処。 システムによっては、デリミタをコロンまたはハイフンのみに統