我正在Meteor中创建自定义登录/注册,因为我需要检查电子邮件格式,更重要的是要在注册表单中添加重新访问,这需要客户端的IP。
所以我打算在Accounts.validateNewUser
验证验证码,但是我无法弄清楚如何在这里获取客户端的ip。
我读了answer如何做到这一点,但这不是我想要的。我检查了包含服务器上所有会话/套接字的Meteor.default_server.sessions。它们包含有关所有套接字的标头,ips的信息。每个人都有一些有趣的东西,如:
pathname: "/sockjs/375/ibmrlwb2/xhr"
prefix: "/sockjs"
protocol: "xhr-polling"
remoteAddress: "127.0.0.1"
remotePort: 42009
但是不知道哪个套接字是当前套接字,我无法确定当前请求的哪个ip。
如何知道服务器的当前请求网址?有了它,我可以检查服务器上的所有套接字来推断客户端的IP。
或者只是如何在服务器上获取客户端的IP?
答案 0 :(得分:2)
我是另一个答案中提到的user-status包的维护者。
最近/即将推出的Meteor版本better support for managing connections以及built-in support for grabbing IP addresses。结合今天login hooks刚刚合并到devel
分支的事实,你应该能够直接处理它或使用我们将添加到用户状态包的东西。
如果有需要,请随意打开拉取请求。
答案 1 :(得分:0)
使用user-status包可以获取客户端的ip。您可以使用包或查看代码,看看它是如何完成的。