Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用cloudflare时在rails中获取客户端IP_Ruby On Rails - Fatal编程技术网

Ruby on rails 使用cloudflare时在rails中获取客户端IP

Ruby on rails 使用cloudflare时在rails中获取客户端IP,ruby-on-rails,Ruby On Rails,这让我有点困惑。 根据文档,如果有人通过代理访问cloudflare,cloudflare将依次按以下顺序设置X-Forwarded-For标头:X-Forwarded-For:client ip,proxy ip 但是当我在rails中调用request.ip时,它将返回proxy-ip,而不是client-ip 那么为什么rails没有返回客户端ip?它是否与工业规范()不一致 编辑: 这就是我如何快速测试Rails如何返回代理ip的方法 command ==================

这让我有点困惑。 根据文档,如果有人通过代理访问cloudflare,cloudflare将依次按以下顺序设置X-Forwarded-For标头:
X-Forwarded-For:client ip,proxy ip

但是当我在rails中调用
request.ip
时,它将返回
proxy-ip
,而不是
client-ip

那么为什么rails没有返回
客户端ip
?它是否与工业规范()不一致

编辑:

这就是我如何快速测试Rails如何返回代理ip的方法

command
============================
curl -H "X-Forwarded-For: 74.125.130.100, 206.190.36.45" http://localhost:3000/

index.html
============================
request.ip: <%= request.ip %>
request.remote_ip: <%= request.remote_ip %
命令
============================
卷曲度-H“X-For:74.125.130.100206.190.36.45”http://localhost:3000/
index.html
============================
request.ip:

request.remote_ip:我认识的一位专家指出:


Rails返回链中最右边的不可信ip。这是为了对付IP欺骗。

我认识的一位专家指出:

Rails返回链中最右边的不可信ip。这是为了对付IP欺骗