2

我正在 Meteor 中创建自定义登录/注册,因为我需要检查电子邮件格式,更重要的是在注册表单中添加一个 recaptcha,这需要客户的 ip。

所以我打算验证验证码Accounts.validateNewUser,但我不知道如何在这里获取客户端的 ip。我阅读了有关如何做到这一点的答案,但这不是我想要的。我检查了 Meteor.default_server.sessions ,其中包含服务器上的所有会话/套接字。它们包含有关所有套接字的标头、ips 的信息。每个都有有趣的东西,比如:

pathname: "/sockjs/375/ibmrlwb2/xhr"
prefix: "/sockjs"
protocol: "xhr-polling"
remoteAddress: "127.0.0.1"
remotePort: 42009

但是在不知道哪个socket是当前socket的情况下,我无法确定当前请求的ip是哪个。

我如何知道服务器的当前请求 url?有了它,我可以检查服务器上的所有套接字以推断客户端的 ip。

或者只是简单地如何在服务器上获取客户端的 ip?

4

2 回答 2

2

我是另一个答案中提到的用户状态包的维护者。

最近/即将推出的 Meteor 版本对管理连接有更好的支持,并且内置了对获取 IP 地址的支持。结合登录钩子今天刚刚合并到devel分支中的事实,您应该能够直接处理这个问题,或者使用我们将添加到用户状态包中的东西。

如果您需要某些东西,请随时打开拉取请求。

于 2014-03-13T03:38:02.440 回答
0

获取客户端的 ip 可以通过user-status包来完成。您可以使用包或查看代码并查看它是如何完成的。

于 2013-07-24T21:56:57.913 回答