我搜索了很多,但我找不到解決方案。我想:Ruby on Rails:如何獲取客戶端IP地址
Rails.logger.error request.remote_ip
Rails.logger.error request.env["REMOTE_ADDR"]
但結果是奇怪的事情:10.130.150.254
或10.130.150.251
。
我用我的手機的LTE/4G網絡進行測試,它總是給我10.130.247.251
,這是一個A級保留專用網絡IP地址。
我也試過:
Rails.logger.error request.env["HTTP_X_FORWARDED_FOR"]
Rails.logger.error request.env["HTTP_X_REAL_IP"]
Rails.logger.error request.env["HTTP_X_CLUSTER_CLIENT_IP"]
但那些給我空字符串。
當我使用我的手機並指向touch.whatsmyip.org時,它給我:172.56.9.89
,這是一個公共IP地址。
我們使用HTTPS SSL終端和負載均衡器,它可能看起來像「Get Remote Host Client IP Behind Load Balancers (ELB)」。
如何獲取客戶端IP地址?如果客戶端在代理服務器後面,那很好,那麼代理IP地址對我來說也是很好的。
我使用Apache和Passenger來爲應用程序提供服務。
「request.remote_ip」是一個類似的問題。
你相比'request.remote_ip'到'request.ip'的結果嗎? –
頁面右側的「相關」鏈接是你的朋友。這些技術和問題對於PHP,Net和Ruby來說都是一樣的。代理,NAT等可以掩蓋/隱藏用戶真正在使用的IP。人們可以反彈其他盒子或使用[TOR](https://www.torproject.org/)類似的系統,因此準確地獲得某些東西可能很困難。 –
@theTinMan,我在發佈我的文章之前搜索了很多stackoverflow文章:-)查看我自己的答案。 –