我们目前正在 Rails 中进行本地 IP 地址检测(使用 ifconfig、tracepath 等),以访问与 Rails 托管在同一台机器上的图表应用程序。在 Rails 启动期间检测到“自身 IP 地址”,并且只执行一次。假设用户可以使用主机名和 IP 地址访问 Apache/Rails 服务器,我可以安全地使用request.host
(在用户登录应用程序后)在<img>
标签中创建 URL(本质上是图表应用程序返回的图像)在 IPv4 和 IPv6 环境中?目前它适用于 IPv4 地址,如下所示:
class ApplicationController < ActionController::Base
CHARTS_BASE = ''
def set_chart_url
chart_url = MYAPP_CONFIG["chart_base"]
chart_url.gsub!("$chart_host", request.host)
CHARTS_BASE.replace(chart_url + 'charts?')
end
class ReportController < ApplicationController
before_filter :set_chart_url
看法:
<div>
<img src="<%=CHARTS_BASE + @opt_graph-%>" alt="Graph"/>
</div>
IPv6 也可以这样吗?在使用 URL 中的主机名或 IPv6 地址连接到 Rails 时,在 IPv6 环境中request.host
会是什么样子?
我认为任何已经在 IPv6 环境中运行 Rails 的人都可以验证上述内容。谢谢。