Rails 3 验证 IPv4 和 IPv6 格式

Posted

技术标签:

【中文标题】Rails 3 验证 IPv4 和 IPv6 格式【英文标题】:Rails 3 validate IPv4 and IPv6 format 【发布时间】:2013-06-02 16:11:03 【问题描述】:

我知道 IPv4 和 IPv6 的验证格式。但不确定我如何将它们组合起来,所以至少一种格式应该是正确的。这是我的验证

validates :src_ip_addr, :presence => true, :uniqueness => true,
            :format =>  :with => Resolv::IPv4::Regex, :message => "Not an valid IPv4 format"

  validates :src_ip_addr, :presence => true, :uniqueness => true,
            :format =>  :with => Resolv::IPv6::Regex, :message => "Not an valid IPv6 format"

我如何将它们组合起来,所以如果一种格式是正确的,那么验证应该可以工作。只有当 ipv4 和 ipv6 格式不正确时才会失败。

谢谢。

【问题讨论】:

【参考方案1】:

您也可以将它们与Regexp.union 结合使用:

:format =>  :with => Regexp.union(Resolv::IPv4::Regex, Resolv::IPv6::Regex) ...

【讨论】:

以上是关于Rails 3 验证 IPv4 和 IPv6 格式的主要内容,如果未能解决你的问题,请参考以下文章

将 IPV4 转换为 IPV6 php

ipv4 ipv6哪个上网速度快

(替代解决方案)使用正则表达式使用通配符 (*) 验证 IPV4 和 IPV6

用于验证 IPv4 和 IPv6 地址的 Javascript 正则表达式,没有主机名

如何批量验证字符串是有效的 IPv4 或 IPv6 地址?

IPv4数据报格式和Ipv6数据报格式(长文,详细解释每个字段)