验证Grails中的IP地址

时间:2013-07-10 11:56:50

标签: validation grails-2.0 grails-domain-class grails-validation

我正在寻找一种通过约束验证Grails中IP地址的方法。

这样的事情可能吗?

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,但我不知道如何实现这个。

2 个答案:

答案 0 :(得分:5)

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

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) 
         } )
 }
}

答案 1 :(得分:1)

您可以使用正则表达式来验证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