Google reCAPTCHA不适用于Linux系统

我正在将reCAPTCHA与我的注册页面集成在一起,除了一个奇怪的问题,一切似乎都正常。

我已经在所有本地机器上testing了这个代码,并且在我们的testing服务器(窗口)上testing了这个代码,一切都正常 我们刚刚安装了一个Linux服务器( Cents OS 6.0 ),并正在testing我的实现在Linux机器上不工作。 不pipe是否填写正确的captcha,我总是作为回应false.This是我的Java代码,我打电话给谷歌的reCAPTCHA API进行validation

 reCaptcha.checkAnswer(request.getRemoteAddr(), request.getParameter("challengeValue"), request.getParameter("responseValue")); 

我试图debugging代码,但目前为止还没有find任何成功,唯一的区别就是request.getRemoteAddr()

request.getRemoteAddr()为Linux和Window服务器提供不同的IP。 (相同的浏览器)

Window和Linux服务器都运行在一台具有相同IP的计算机上(某种虚拟机箱)

我正在使用recaptcha4j来整合reCaptcha API。

对我来说,问题似乎是来自Linux设置或者configuration,这是我不知道的。我甚至和我们的IT人员交谈,他似乎也是无知的。

我已经在Ubuntu上进行了testing,它在该机器上工作正常,甚至…像一些Cent OS6的configuration问题

我确定与您的testing服务器和生产服务器的区别是 – 防火墙。
检查它是否接受对Google服务器的输出请求并从中build立

如果你使用iptables来达到这个要求:

 iptables -A INPUT -i eth0 -p tcp -s <google_ipv4_1> -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -d <google_ipv4_1> -j ACCEPT 

您需要确定浏览器以及操作系统,以及您正在使用的插件可能是相关的。 请注意任何可能影响cookie处理的事情。

你的问题是否发生在这个Linux主机与不同的浏览器? 在不同的Linux主机上呢?

如果您的virtualbox实例使用桥接networking,则可能使用的是从DHCP获取的不同IP,尽pipe它们位于同一台物理主机上。