目前我的socket.io聊天应用程序每个ip只允许1个用户,这意味着如果同一个房子或网络中的两个人想要使用聊天,只有其中一个人能够使用。
有没有办法找出用户拥有的私有IP,除了我已经知道的公共IP?
答案 0 :(得分:0)
假设您的聊天应用是在浏览器中运行的Javascript,那么" No" ,您的服务器无法知道最终的私有IP地址是什么-用户。如果您的聊天应用程序是本机应用程序,那么您的本机聊天应用程序可以获取本地专用IP地址并将其发送到服务器。但是,这可以通过没有本机代码插件的浏览来完成。
浏览器不提供Javascript获取私有IP地址的方式,因此您的聊天应用无法将其发送到您的服务器。并且,服务器当然无法单独了解私有IP地址。
您可以使用Cookie在同一个浏览器中同时打开多个聊天窗口(第一次连接时使用Cookie,然后查找具有相同Cookie的任何其他传入连接)。但是,您无法阻止使用该方案的多个浏览器。
处理此问题的常用方法是要求帐户并登录该帐户,并且每次只对每个帐户执行一次登录,并要求每个帐户使用唯一的电子邮件地址甚至经过验证的信用卡号码,以阻止人们制作大量账户。当然,还有很多方法(多个电子邮箱或多个信用卡),但这足以阻止许多人并阻止大规模滥用。一般来说,你应该设计你的服务,所以如果有人这样做,坦率地说这不是问题。