有一种方法可以通过rails服务器在控制器上获取客户端端口吗?
我知道哪些可以通过 request.remote_ip 获取远程IP,但我需要像request.remote_port这样的东西。
答案 0 :(得分:1)
Rack的Hijacking功能公开了底层的Socket或IO对象。
if request.env['rack.hijack?']
request.env['rack.hijack'].call
io = request.env['rack.hijack_io']
io.class #=> TCPSocket
io.addr #=> ["AF_INET", 3000, "127.0.0.1", "127.0.0.1"]
io.peeraddr #=> ["AF_INET", 51464, "127.0.0.1", "127.0.0.1"]
end