确定Node.js应用程序中的请求是否是本地的
我正在学习Node.js 在创build一个网站时,我会在本地运行网站(在localhost
)。 部署后,将在其他服务器上运行。 我的问题是,如何确定请求是从本地还是不在节点? 在ASP.NET中,我可以使用Request.IsLocal
。 我试图找出如何在Node中做到这一点。
谢谢!
有server.address()
来获取服务器地址。
并且request
具有connection
和socket
对象,因为两者都可能保存远程地址(在remoteAddress
属性中),具体取决于当前连接的types。
但是如果服务器位于反向代理之后,则必须将其从适当的头部拉出,最有可能是x-forwarded-for
。 但是,我不确定如果代理被链接,这是否成立。
所以,总结一下,你会做一些事情:
function cliAddress(req) { return req.connection.remoteAddress || req.socket.remoteAddress || req.headers['x-forwarded-for']; } server.isLocal = function(request) { return server.address() === cliAddress(req); }
如果你使用express.js …