在线游戏中跟踪计算机


Tracking Computers in an Online Game

所以我遇到了一个问题,人们创建多个帐户,以便在游戏中使用更多资源使帐户变得更好。

所以我的困境是,许多用户通过代理或NATd信息,所以如果我每个ip只有一个用户,一些合法用户将被禁止。

有没有一种方法(使用Javascript和PHP)可以获得特定于计算机的uniq标识符(如果没有硬件更改,计算机硬件更改可能会更改标识符)。

任何想法或评论都将与联系在一起


(以下是保罗的回应,但因不合时宜而被另一位删除。)

我不能改变客户端太多,因为它是一个基于浏览器的游戏,所以获取hwid是可能的。但是如何使用JS或PHP。

添加定时器和限制来阻止传输已经到位,但并不能完全阻止它们——可以选择通过电子邮件发送IP异常。但这是缓慢而乏味的。我想知道是否有一个为特定计算机生成特定id或标识符的确定方法(不基于ip),这将使多个帐户不能从同一台计算机登录,而是可以从同一个ip 登录

当我们谈论不同的帐户时,可能在不同的ip和客户端上,您无法轻松找到克隆帐户。

你可以选择另外两个启发式和游戏选项

  1. 正如之前(@dqhendricks)所建议的那样,分配你的资源并实现你的共享等,这样你就无法轻松地用每个新帐户帮助你的其他帐户。让一开始就很难/不可能找到其他账户,让可共享资源成为更高级别的功能等。不利的是,这会改变游戏玩法,不一定是可取的
  2. 你可以对行为进行启发。可能有一些特定的行为是不需要的:只与1个其他帐户进行交互等。你可以调整一些变量等,但你很容易看到可疑的行为。进行某种"平衡"计算。大多数ingame互动都有某种平衡。当然,更好的球员可能会有一笔好交易,因为他们知道得更多,或者反过来:他们为帮助较小的球员而做了一笔糟糕的交易。但是,当一个玩家只给予而从不索取时,这是在"帮助",而不是真正地扮演自己:这可能意味着它是一个克隆人

就我而言,在这种情况下,所有带有ip地址或客户端信息($_SERVER)等的东西都毫无价值。。

您可以阻止在同一帐户(用户名/密码)上多次登录。

如果问题是他们使用许多不同的电子邮件地址等创建了多个帐户…以及新的用户名和密码,那么你可能可以使用Cookie来完成这项工作,例如使用唯一的硬件id,然后你只需根据该硬件id检查一次活动的帐户是否不超过一个。如果硬件发生变化,这并不重要,因为它是相对的。

为了澄清第一次登录的HW id是否为1234,则第二次登录将生成相同的hwid。如果你检查cookie或你的数据库(不管你把它存储在哪里)是否有相同的hwid,那么你就知道它已经登录了

如果硬件发生了变化,这并不重要,因为它们仍然会生成相同的hwid。

如果他们使用两台计算机,尽管haardware id会不同,这将起作用。

{可共享资源}={总资源}-MAX(({起始资源}-{已用资源}),0)

只让非启动资源可以共享,或者让共享资源成为你直到x级才能获得的能力。

防止伪造/重复帐户(同时确保所有合法帐户都能工作)是一项非常困难的任务,原因由其他人提出。除了试图防止并发多个帐户外,还必须防止非并发多个帐户的使用。

核心问题不在于确定账户从何处连接,而在于能够相信用户只有一个账户——为此,唯一"真正"的解决方案是使用已经提供此类信息的系统,如信用卡或贝宝账户;-)也就是说,简单地阻止某人创建一个新帐户(尽管一个帐户可以有多个别名/配置文件,但这些可以被琐碎地跟踪),除非他们能够证明"唯一性"。

(还要考虑两个人在同一台机器上可能有两个不同的帐户。)

快乐的编码。

我也运行一个在线游戏服务器。为了防止您的dilema,请修改游戏客户端以读取MAC地址,并且每台计算机只允许1个帐户。或者记录ip,只允许将资源提供给该ip两次。第三种选择:不允许从相同的ip地址转移材料第四个选项:在资源转移上添加一个计时器,让他们等待10分钟的游戏时间,然后才能做任何事情,比如为其他人处理物品以获得