跟踪在线游戏中的计算机

时间:2011-05-22 04:03:46

标签: php javascript anti-cheat

所以我遇到了一个问题,人们制作多个帐户,以便在游戏中获得更多资源,从而更好地解决问题。

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

是否有办法(使用Javascript和PHP)获取特定于计算机的uniq标识符(没有硬件更改,计算机硬件更改可能会更改标识符)。

任何想法或评论都会非常明显


(以下内容是从保罗的回复中恢复过来的,但是因为不合适而被其他人删除了。)

我无法更改客户端,因为它是一个基于浏览器的游戏,所以获得hwid是可能的。但是如何使用JS或PHP。

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

5 个答案:

答案 0 :(得分:1)

由于我们正在谈论一个不同的帐户,可能是在不同的IP和客户端上,您无法轻易找到克隆帐户。

您可以选择另外两种启发式和游戏性选项

  1. 正如之前所建议的(由@dqhendricks),划分您的资源并实施您的共享等,以便您无法轻松地为每个新帐户的其他帐户提供帮助。在开始时很难/不可能找到其他帐户,使可共享资源成为更高级别的功能等。缺点是这会改变游戏玩法,而不一定是可取的。
  2. 您可以对行为进行启发式扫描。可能存在不需要的特定行为:仅与其他1个帐户进行交互等。您可以调整一些变量等,但您可以轻松看到可疑行为。进行某种“平衡”计算。大多数游戏互动都有某种平衡。当然,更好的球员可能会有很多优惠,因为他们知道的更多,或者相反:他们做出了不好的交易来帮助小球员。但是当一个玩家只给出并且永远不会接受时,它就会“帮助”而不会在实际上自我玩耍:这可能意味着它是一个克隆
  3. 就我而言,在这种情况下,使用ip-adresses或客户信息($ _SERVER)等所有内容都毫无价值。

答案 1 :(得分:0)

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

如果问题是他们使用许多不同的电子邮件地址等多个帐户...以及新的用户名和密码,那么您可以使用Cookie执行此操作,例如使用唯一的硬件ID然后您只需检查根据此hwid,任何时候不超过一个帐户处于活动状态。如果硬件发生变化则无关紧要,因为它是相对的。

要澄清第一次登录的HW ID是否为1234,然后第二次登录时生成相同的hwid。如果您检查相同的hwid的cookie或数据库(无论在何处存储它),那么您知道它已经登录。

如果硬件发生变化则无关紧要,因为它们仍将生成相同的hwid。

如果他们使用两台计算机,虽然haardware id会有所不同,但这样可行。

答案 2 :(得分:0)

{sharable resources} = {total resources} - MAX(({starting resources} - {spent resources}),0)

只允许非启动资源共享,或者使共享资源成为你在x级别之前无法获得的能力。

答案 3 :(得分:0)

防止欺骗/重复帐户(确保所有合法帐户工作)是一项非常困难的任务 - 出于其他人的原因。除了尝试防范并发多个帐户外,还必须防范非并发多个帐户的使用。

核心问题不在于确定从哪个帐户连接,而能够信任用户只有一个帐户 - 并且结束唯一的“真正的”解决方案是使用已经提供此类信息的系统,例如信用卡或PayPal帐户;-)即,只是阻止某人创建新帐户(虽然一个帐户可以有多个别名/配置文件,但这些可以被轻易跟踪),除非它们可以证明“唯一性”。

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

快乐的编码。

答案 4 :(得分:-1)

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