首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IP地址格式检查

IP地址格式检查
EN

Stack Overflow用户
提问于 2011-12-16 09:30:52
回答 4查看 2.7K关注 0票数 1

我正在使用Rubyv1.8.7开发Rails应用程序。我的问题更多地是关于Ruby语言。

我知道有一个名为IPAddr的内置Ruby库,名为Rubyv1.8.7。它很好地处理与IP地址相关的问题。但是,它似乎没有提供任何方法来检查IP地址格式。

有人能为我提供一个检查中IP地址格式(IPv4和IPv6地址)的好方法吗?谢谢。

P.S.

我尝试了一种正则表达式方式:

代码语言:javascript
复制
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

但这行不通..。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-16 11:51:37

看来你的正则表达式错了。它应该是:

代码语言:javascript
复制
/^([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])$/
票数 1
EN

Stack Overflow用户

发布于 2012-10-25 22:02:08

http://www.ruby-doc.org/stdlib-1.8.7/libdoc/ipaddr/rdoc/IPAddr.html

IPAddr类已经提供了检查它们是IPV4格式还是IPV6格式的方法:

  • #ipv4 4?
  • #ipv6 6?
票数 6
EN

Stack Overflow用户

发布于 2011-12-16 09:47:13

ActiveValidators有一个IP验证器。

它对任何ipv4使用正则表达式,对任何ipv6地址使用Resolv::IPv6::Regex

要使用它,非常简单。

将激活器添加到Gemfile中。

代码语言:javascript
复制
gem 'activevalidators'

然后,在你的计算机课上:

代码语言:javascript
复制
class Computer << ActiveRecord::Base
  validates :remote_address,
    :ip => { :format => :v4 }
end
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8532171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档