1

我想将 NAT Punchthrough 实现为客户端应用程序的一部分,以允许客户端在路由器后面时相互连接。我希望使用 Azure 移动服务来实现这一点,但为了做到这一点,服务器需要将所有传入连接的 ip 地址和端口保存在数据库中(以便其他客户端可以查找主机并连接回来给发布数据的客户)。

无论如何要在服务器端脚本中获取此连接(IP 地址和端口)信息?如果没有,有哪些替代服务可以让我设置这样的 API?

谢谢!

4

2 回答 2

1

我在 windows azure 论坛上的另一个线程上找到了答案。

标头通过移动服务自定义 api 功能公开。此外,azure 使用转发机器将传入请求路由到适当的虚拟机。这台机器是一个代理,它将传入的连接信息保存到 x-forwarded-for http 标头中。因此,从自定义脚本中,我们可以从标头中查询传入的连接信息。需要注意的是,x-forwarded-for 标头应该包含 ip 地址和端口号。

这是另一个线程中给出的自定义 api 示例。

exports.get = function(request, response) {
    var ip = request.headers['x-forwarded-for'];
    response.send(statusCodes.OK, ip);
};

另一个线程在这里:http ://social.msdn.microsoft.com/Forums/windowsazure/en-US/a6aa306c-f117-4893-a50a-94418fafc1a9/client-ip-address-from-serverside-scripts-azure-移动服务?forum=azuremobile&prof=必需

于 2013-10-08T02:33:39.370 回答
0

目前这不可用。Azure 团队正在努力增加有关脚本请求的信息量。至于何时可用,我不确定。

于 2013-10-07T09:58:01.927 回答