获取在Express中请求路由的域
如果我有这个客户端应用程序运行在端口3000上,并且在我的API中build立在ExpressJS之上,在端口8080上运行,我怎么知道请求是在localhost:3000
上发起的呢?
我听说有人在用:
req.get('host') //or origin req.headers.host //or origin
origin
不存在,主机返回localhost:8080
,即服务器端。 我想要客户的地址。
为什么在ExpressJS上获取这些信息非常困难? 任何人都知道我该怎么做?
客户端连接只有一个IP地址。 它不是“来自”一个域名。 您可以对IP地址进行反向查找,并查看它是否与域连接。 但是,大多数客户只会报告属于某个ISP的IP地址,而不是特定的域名。
如果你想检查客户端连接是否与服务器运行在同一个主机上(你提到localhost,所以我假设你的意思是这个),那么你可以比较客户端IP地址和你的服务器IP地址,看看是否他们是一样的。 您可能需要规范本地主机可以报告的各种方式,您可能需要确保一方不报告127.0.0.1
而另一方报告真实IP地址。
如果你解释一下你正在努力解决的问题,那么我们可能会以另一种方式来帮助你。