我正在使用Rubyv1.8.7开发Rails应用程序。我的问题更多地是关于Ruby语言。
我知道有一个名为IPAddr的内置Ruby库,名为Rubyv1.8.7。它很好地处理与IP地址相关的问题。但是,它似乎没有提供任何方法来检查IP地址格式。
有人能为我提供一个检查中IP地址格式(IPv4和IPv6地址)的好方法吗?谢谢。
P.S.
我尝试了一种正则表达式方式:
ip_regex = ^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.
([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$
ip_addr='127.0.0.3'
ip_addr =~ ip_regex但这行不通..。
发布于 2011-12-16 11:51:37
看来你的正则表达式错了。它应该是:
/^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$/发布于 2012-10-25 22:02:08
http://www.ruby-doc.org/stdlib-1.8.7/libdoc/ipaddr/rdoc/IPAddr.html
IPAddr类已经提供了检查它们是IPV4格式还是IPV6格式的方法:
发布于 2011-12-16 09:47:13
ActiveValidators有一个IP验证器。
它对任何ipv4使用正则表达式,对任何ipv6地址使用Resolv::IPv6::Regex。
要使用它,非常简单。
将激活器添加到Gemfile中。
gem 'activevalidators'然后,在你的计算机课上:
class Computer << ActiveRecord::Base
validates :remote_address,
:ip => { :format => :v4 }
endhttps://stackoverflow.com/questions/8532171
复制相似问题