在 Grails 中验证 IP 地址

Posted

技术标签:

【中文标题】在 Grails 中验证 IP 地址【英文标题】:Validate ip address in Grails 【发布时间】:2013-07-08 08:19:41 【问题描述】:

我正在寻找一种通过约束的方法。

这样的事情可能吗?

package example

class Ip 

    String ip

    static constraints = 
        ip(unique: true, inetAddress: true)
    

我找到了这个链接:http://grails.org/doc/2.2.x/api/org/codehaus/groovy/grails/validation/routines/InetAddressValidator.html,但我不知道如何实现。

【问题讨论】:

【参考方案1】:

我找到了我搜索的解决方案

import org.codehaus.groovy.grails.validation.routines.InetAddressValidator

class Ip 

   String ip



 static constraints = 
    ip(blank: false, unique: true, validator:  
         return InetAddressValidator.getInstance().isValidInet4Address(it) 
          )
 

【讨论】:

【参考方案2】:

您可以使用正则表达式来验证 IP 地址格式。

class Ipaddr 

    String ip_addr

    static constraints = 
        ip_addr(matches:/^([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))$/)
    

如果您需要特定范围,可以使用以下方法构建正则表达式:

IP地址范围工具http://support.google.com/bin/answer.py?hl=en&answer=1034771

【讨论】:

谢谢!但我更多的是寻找使用 API 验证例程的解决方案 您好,我刚刚发现google的答案已经不在网上了。

以上是关于在 Grails 中验证 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

Grails:验证包含分隔的电子邮件地址列表的字符串

Grails 覆盖默认的电子邮件验证

是否可以在 Grails 之外使用 Grails 验证?如何?

如何在Grails中使用自定义身份验证过滤器?

获取行时的 grails 验证

在 Grails 中支持基本身份验证和基于表单的身份验证