使用node/socket.io时,请查找专用ip



目前我的socket.io聊天应用程序每个ip只允许1个用户,这意味着如果同一个房子或网络中的两个人想使用聊天,只有其中一个人可以。

除了我已经知道的公共ip之外,还有什么方法可以找出用户的私人ip吗?

假设你的聊天应用程序是在浏览器中运行的Javascript,那么"否",你的服务器就无法知道最终用户的私人IP地址是什么。如果你的聊天应用程序是本地应用程序,那么你的本地聊天应用程序可以获取本地私有IP地址并将其发送到服务器。但是,如果没有本机代码插件,这是无法从浏览中完成的。

浏览器没有为Javascript提供获取私人IP地址的方法,因此您的聊天应用程序无法将其发送到服务器。而且,服务器肯定没有办法完全自己知道私有IP地址。

您可以使用cookie来检测同一浏览器中同时打开的多个聊天窗口(对第一个连接进行cookie处理,然后使用同一cookie查找任何其他传入连接)。但是,您不能阻止多个浏览器使用该方案。

处理这一问题的通常方法是要求一个帐户并登录该帐户,并强制每个帐户一次只登录一次,并要求每个帐户都有唯一的电子邮件地址,甚至验证过的信用卡号,以阻止人们创建大量帐户。当然,也有办法解决这个问题(多个邮箱或多张信用卡),但这足以阻止许多人并防止大规模滥用。一般来说,你应该设计你的服务,所以如果有人这样做,坦率地说,这不是问题。

最新更新