跟踪在线游戏中的计算机
所以我遇到了一个问题,人们创建多个帐户,以便在游戏中使用更多资源来使帐户更好。
所以我的困境是,许多用户通过代理或 NATd 信息,因此如果我每个 ip 只有 1 个用户,一些合法用户将被禁止。
有没有一种方法(使用 Javascript 和 PHP)来获取特定于计算机的 uniq 标识符(无需更改硬件,计算机硬件更改可能会更改标识符)。
任何想法或评论都会得到极大的重视
(以下内容是从 Paul 的回复中恢复的,但因不合适而被另一个人删除。)
我无法对客户端进行太多更改,因为它是基于浏览器的游戏,因此获取 hwid 将是可能的。但是如何使用 JS 或 PHP。
添加计时器和限制以防止传输已经到位,但并不能完全阻止它们,可以选择通过电子邮件发送 IP 例外情况。但这是缓慢而乏味的。我想知道是否有一个明确的方法可以为特定计算机(不是基于 ip 的)生成特定的 id 或标识符,从而使多个帐户无法从同一台计算机登录,但可以从同一 ip 登录
So i am running into a problem with people making multiple accounts to make there account better with more resource in game.
So my dilemma is, Many users go thru proxys or NATd info so some legimated users would be banned if i only have 1 user per ip.
Is there a way (with Javascript and PHP) to Get a uniq identifier specific to a computer (without Hardware changes, computer hardware change probably would change the identifier).
Any idea or comments would be much appericated
(The following was revived from a response made by Paul, but deleted by another for being out of place.)
I cant change the client to much because its a browser based game so getting the hwid would be possible. But how with JS or PHP.
Adding timers and restrictions to prevent transfers are in place but doesnt stop them entirely there is an option to email for an IP exception. but that is slow an tedious. Im wondering if there is a definitive to generate a specific id or identifier for a specific computer (Not ip based) that would make it so multiple accounts cant be logged in from the same computer but can be logged in from the same ip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
当我们谈论不同的帐户时,可能在不同的 IP 和客户端上,您无法轻松找到克隆帐户。
您可以选择另外两个启发式和游戏选项,
,就我而言,在这种情况下,带有 ip 地址或客户端信息($_SERVER)等的所有内容都是毫无价值的担心的..
As we are talking about a different account, probably on a different IP and client, you cannot easily find out clone accounts.
You can go for two more heuristic and gameplay options
Everything with ip-adresses or client-information ($_SERVER) etc is worthless in this case as far as I'm concerned..
您可以防止同一帐户(用户名/密码)多次登录。
如果问题是他们使用许多不同的电子邮件地址等创建多个帐户以及新的用户名和密码,那么您可能可以使用 Cookie 来实现这一点,例如使用唯一的硬件 ID,然后您只需检查不超过根据此 hwid,一个帐户在任何时候都处于活动状态。如果硬件发生变化也没关系,因为它是相对的。
为了澄清第一次登录的 HW id 是否为 1234,然后第二次登录会生成相同的 hwid。如果您检查 cookie 或数据库(无论存储在哪里)是否有相同的 hwid,那么您就知道它已经登录。
如果硬件发生变化,也没关系,因为它们仍然会生成相同的 hwid。
如果他们使用两台计算机,尽管硬件 ID 会不同,但这是可行的。
You could prevent multiple logins on the same Account (username/password).
If the issue is that they make multiple accounts with many different email addresses etc... and new usernames and passwords then you might be able to do it with Cookies for example that use a unique hardware id and then you simple check that not more than one account is active at any one time based on this hwid. if the hardware changes it doesnt matter as it is relative.
To clarify if the HW id for the first login is 1234 then the second login with generate the same hwid. If you check the cookies or your database (doesnt matter where you store it) for the same hwid then you know its already logged in.
If the hardware changes it doesnt matter as they will still both generate the same hwid.
If they use two computers though the haardware id will be different and this will work.
{可共享资源} = {总资源} - MAX(({起始资源} - {已用资源}), 0)
仅使非起始资源可共享,或者可能使共享资源成为您在 x 级之前无法获得的能力。
{sharable resources} = {total resources} - MAX(({starting resources} - {spent resources}), 0)
make only non-starting resources sharable, or maybe make sharing resources an ability you don't gain until level x.
防止欺骗/重复帐户(同时确保所有合法帐户正常工作)是一项非常困难的任务 - 原因已由其他人阐述。除了尝试防止多个帐户并发使用之外,还必须防止多个帐户非并发使用。
核心问题不在于确定帐户从何处连接,而在于能够相信用户只有一个帐户 - 为此,唯一的方法是“真正的”解决方案是使用已经提供此类信息的系统,例如信用卡或 paypal 帐户;-) 也就是说,简单地阻止某人创建新帐户(尽管帐户可以有多个别名/配置文件,但这些可以是微不足道的跟踪)除非他们能够证明“唯一性”。
(还要考虑到两个人可能在同一台机器上有两个不同的帐户。)
快乐编码。
Preventing spoofed/duplicate accounts (while ensuring all legitimate accounts work) is a very difficult task -- for reasons laid out by others. In addition to trying to guard against concurrent multiple accounts, one must guard against non-concurrent multiple account usage.
The core issue isn't so much in determining where an account connected from, but being able to trust that a user only has one account -- and to this end the only "real" solution is to use a system which already provides this sort of information, such as a credit card or paypal account ;-) That is, simply prevent someone from creating a new account (although an account can have multiple aliases/profiles, but these can be trivially tracked) unless they can prove "uniqueness".
(Also consider that two people may have two different accounts on the same machine.)
Happy coding.
我也运行一个在线游戏服务器。为了防止您陷入困境,请修改游戏客户端以读取MAC地址,并且每台计算机仅允许1个帐户。或者记录 ip 并只允许向该 ip 分配资源两次。
第三个选项:不允许从相同的 IP 地址传输材料
第四个选项:在资源转移上添加一个计时器,让他们在游戏中等待 10 分钟,然后才能做任何事情,例如摆脱其他人获得的物品
I run an online game server aswell. To prevent your dilema, either modify the game client to read the MAC Address, and only allow 1 account per computer. Or log the ip's and only allow the resources to be given to that ip twice.
3rd option: Don't allow transfering of materials from the same ip addresses
4th option: Add a timer on the transfering of resources, make them wait 10 minutes of gameplay before they can do anything like getting rid of the items for others to get