我正在开发rails(2.3.8)应用程序。我需要存储实际的客户端的远程IP地址。在Rails中获取实际的远程IP?
request.remote_ip
只返回127.0.0.1
,但我需要存储实际的远程IP,如93.43.56.77
。任何红宝石都可用?或者怎么做到这一点?
我正在开发rails(2.3.8)应用程序。我需要存储实际的客户端的远程IP地址。在Rails中获取实际的远程IP?
request.remote_ip
只返回127.0.0.1
,但我需要存储实际的远程IP,如93.43.56.77
。任何红宝石都可用?或者怎么做到这一点?
试试这个:
request.env['REMOTE_ADDR']
如果您的请求从开发机器来和开发机是你的服务器是,也许你会得到127.0.0.1
。但是如果请求来自另一台机器,这将是远程机器的IP。但是,在各种情况下,这可能不是机器的真正IP(机器在代理之后,使用tor或其他工具将其隐藏在e.t.c中)。
'request.env ['REMOTE_ADDR']'也返回127.0.0.1 ' –
@Dhinesh Kumar它工作得很好。请阅读我的评论。我在生产应用程序中使用它,它完美地工作。 –
您的电脑基本上有两个网络接口。
你不会得到应用展示'93 .43.56.77' ,除非该连接运行在这一点上,这意味着将需要在不同的计算机上。
如果您非常关心它,您可以轻松地将它推送到Heroku,并按照您的预期工作。
[IP地址在rails中]的可能重复(http://stackoverflow.com/questions/3887943/ip-address-in-rails) – Mischa