我想将 NAT 穿透作为客户端应用程序的一部分来实现,以允许客户端在路由器后面相互连接。我希望使用 Azure 移动服务来完成此任务,但为了做到这一点,服务器需要将所有传入连接的 IP 地址和端口保存在数据库中(以便其他客户端可以查找主机并连接回来)发送给发布数据的客户端)。
是否有办法在服务器端脚本中获取此连接(IP 地址和端口)信息?如果没有,有哪些替代服务可以让我设置这样的 API?
谢谢!
最佳答案
我在 windows azure 论坛上的另一个线程中找到了答案。
header 通过移动服务自定义 API 功能公开。此外,azure 使用转发计算机将传入请求路由到适当的虚拟机。该机器是一个代理,它将传入的连接信息保存到 x-forwarded-for http header 中。因此,从自定义脚本中,我们可以从 header 查询传入的连接信息。应该注意的是,x-forwarded-for header 应该包含 IP 地址和端口号。
这是另一个线程中给出的自定义 API 示例。
exports.get = function(request, response) {
var ip = request.headers['x-forwarded-for'];
response.send(statusCodes.OK, ip);
};
关于azure - 使用 Azure 移动服务路由客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19204416/