首页 > 解决方案 > 如何在 Mojolicious 中获取 IP 地址?

问题描述

我想在每次登录时为用户获取 IP。我试过了:

my $ip_address = $controller->tx->remote_address;

但它正在获取主机服务器IP。我应该如何得到它?

标签: perlmojolicious

解决方案


如果你在反向代理后面$c->req->headers->header('X-Forwarded-For')会给你你正在寻找的东西,但正确的解决方法是“通过设置环境变量告诉你的应用程序MOJO_REVERSE_PROXY

或者,如果您使用的是 Hypnotoad,请通过配置启用代理支持

# myapp.conf
{hypnotoad => {proxy => 1}};

“这允许 Mojolicious 自动获取X-Forwarded-ForX-Forwarded-Proto标题。”

一旦你这样做,它$c->tx->remote_address会自动给你X-Forwarded-For价值,如果你想要你会使用的原始 IP$c->tx->original_remote_address

来源:Mojo 食谱


推荐阅读