在我的Rails 3.2應用程序中,我使用的嵌入式JavaScript圖表來自TradingView。但是,似乎port 443 must be opened for it to show。因此,我試圖檢查端口是否對用戶開放,如果不是,則顯示除圖表外的內容。檢查端口是否在Rails中打開
我發現這個職位,"Ruby - See if a port is open"並一直在努力這樣回答的:
require 'socket'
require 'timeout'
def port_open?(ip, port, seconds=1)
Timeout::timeout(seconds) do
begin
TCPSocket.new(ip, port).close
true
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
false
end
end
rescue Timeout::Error
false
end
但是,我修改它是:
def port_open?(ip, port=443, seconds=1)
由於端口檢查將始終是相同的爲了我。
我打電話的方法是這樣的:
@ip = request.remote_ip
test = port_open?(@ip)
我發現這個問題時,我是在防火牆後面。
我不明白的是我現在可以看到圖表,我不在防火牆後面,但是如果我在本地運行下面的代碼,我可以看到圖表,但我收到false
。
但是,如果我更改port=3000
我收到了真實。我究竟做錯了什麼?謝謝!