这是一个非常简单的问题,但是我无法在任何地方找到关于它的提及。
在Sinatra中,我如何获取客户端的IP地址?
get '/' do
"Your IP address is #{....}"
end
这是一个非常简单的问题,但是我无法在任何地方找到关于它的提及。
在Sinatra中,我如何获取客户端的IP地址?
get '/' do
"Your IP address is #{....}"
end
Sinatra提供了一个request
对象,它是与客户端请求数据交互的接口,你应该使用它。
使用request.ip
是查找客户端IP地址的首选方法:
get '/' do
"Your IP address is #{request.ip}"
end
Request#ip
方法来自 Rack 而不是 Sinatra。 - skalee我本来就要来发布答案了,所以:
get '/' do
"Your IP address is #{ @env['REMOTE_ADDR'] }"
end
Sinatra使用Rack::Request API,因此您可以使用其中许多可用的内容。
同时提供Sinatra文档的链接。
ip
方法,它也处理HTTP_X_FORWARDED_FOR
,有没有办法从Sinatra中调用它? - dbr
@env['REMOTE_ADDR']
里面 - 我之前通过搜索"127.0.0.1"来检查@env.inspect
的输出结果,但它显示的是IPv6的::1
地址,所以我错过了... 如果有人愿意回复这个问题,那么我就可以立即接受它,不用等待48小时了...(免费声望!:P) - dbr