moj*_*nes 4 grails groovy ip-address abtest
我开始在Grails Web应用程序中为A/B测试编写一些代码.我想确保来自同一IP地址的请求始终看到相同的变体.而不是存储IP->变量的映射,是否可以通过删除点简单地将IP地址转换为整数,然后将其用作随机数生成器的种子?以下是在Grails过滤器中进行的:
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
Run Code Online (Sandbox Code Playgroud)
我知道通过IP地址识别用户是不可靠的,我也将使用会话变量/ cookie,但这似乎对我们有新会话,没有设置cookie(或用户有cookie)的情况很有用禁用).
您可以简单地取32位数字并执行ip mod number_of_test_scenarios.或者使用ruby中提供的标准散列函数.但我觉得我应该指出这种方法的一些问题: