Я начинаю писать код для A / B-тестирования в веб-приложении Grails. Я хочу убедиться, что запросы с одного и того же IP-адреса всегда видят одно и то же изменение. Вместо того, чтобы хранить карту IP-> варианта, можно ли просто превратить IP-адрес в целое число, удалив точки, а затем использовать его в качестве начального числа для генератора случайных чисел? В фильтре Грааля происходит следующее:
def ip = request.remoteAddr
def random = new Random(ip.replaceAll(/\./, '').toInteger())
def value = random.nextBoolean()
session.assignment = value
// value should always be the same for a given IP address
Я знаю, что идентификация пользователей по IP-адресу ненадежна, и я буду также использовать переменные / файлы cookie сеанса, но это, кажется, полезно в случае, когда у нас новый сеанс, и файлы cookie не установлены у пользователя отключены куки).