Проверить IP-адрес в Grails

Я ищу способ проверки IP-адресов в Grails с помощью ограничений.

Возможно ли что-то подобное?

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, но я не знаю, как это реализовать.


person mbs    schedule 10.07.2013    source источник


Ответы (2)


Я нашел решение, которое искал

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) 
         } )
 }
}
person mbs    schedule 01.08.2013

Вы можете использовать регулярное выражение для проверки формата 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=ru&answer=1034771

person user8658912    schedule 11.07.2013
comment
Спасибо! Но я больше ищу решение, использующее процедуру проверки API. - person mbs; 16.07.2013
comment
Привет, я только что обнаружил, что ответа Google больше нет в сети. - person Eel Lee; 24.04.2015