当前位置: 代码迷 >> ASP.NET >> 怎么获得客户端的机器码或者其他可以唯一标识的,要不财富都被他们领光了,5555555.
  详细解决方案

怎么获得客户端的机器码或者其他可以唯一标识的,要不财富都被他们领光了,5555555.

热度:2225   发布时间:2013-02-26 00:00:00.0
如何获得客户端的机器码或者其他可以唯一标识的,要不财富都被他们领光了,5555555...

      我在做一个游戏网站,主页有个功能:一个身份证号可以领取一个游戏帐号和密码,
帐号里送了3w财富。
      一开始是根据ip地址来限制的,一个ip地址限领5次,后来发现有人生成很多身份证号码,换着ip地址天天来领取,1w个帐号很快就没了....
      怎么能获得客户端的机器码或者别的唯一标识?   就可以控制换ip的问题了。
      或者,大家有更好的办法吗?
      谢谢,在线等待.........



------解决方案--------------------------------------------------------
你可以根据网卡地址来判断
------解决方案--------------------------------------------------------
楼主搞什么游戏网站啊~~~这么热门
楼主可以这么来搞,1w个帐户,每天只发送100个,发送完成后自动关闭注册。
如果用户用的代理来注册,你的什么保障都没有了
------解决方案--------------------------------------------------------
1W

------解决方案--------------------------------------------------------
web客户端获取机器码?
很有难度...
------解决方案--------------------------------------------------------
不一定要用技术手段,比如你的3w资源不要一次送,你可以注册以后比如每天送1千,送一个月~~~也是三万,但是如果当天没有上线,那么那天的一千就没了~~ 如果连续3天没有上线,那么后面送的也全没了~~~


我只是举个简单的例子,因为不知道3W在你那里到底是多少。这么做,对一般用户影响不大,但是对恶意注册的用户则大大增加了其倒资源的难度,一个人注册一个账户很容易,注册完把资源倒到另外一个就可以丢了~~~ 但是你让他记住几百个用户名还每天登陆一下,这可就累了,这样就阻止了部分人的恶意注册,至于那种非常坚持不懈一定要跟你对着干的,应该不会太多,减少就行了,杜绝太难。


也许不是一天一次,是一周一次,这个就看你游戏黏度和性质决定了。
------解决方案--------------------------------------------------------
这个问题不能纯靠技术解决
就像CSDN的帐户一样
------解决方案--------------------------------------------------------
o
------解决方案--------------------------------------------------------
LZ 逻辑没考虑好
------解决方案--------------------------------------------------------
呵呵,,对..用变通的方式。。
------解决方案--------------------------------------------------------
获取客户端的mac地址,这个能唯一标示
------解决方案--------------------------------------------------------
mac一样可以改掉
....

楼主应该 考虑更合理的 发放方式
------解决方案--------------------------------------------------------
是的,我觉得lz的思路走进了死胡同,在游戏开发中间,因为你就是指定法律的人,下面哪些玩家就是在你的法律下生存的人,所以你不能靠一些损害玩家的方式去限制(网吧的玩家可能就因为你的绑定而不能注册了),而是应该通过你制定的法律限制那些恶意的人群.
上面的一些点子还有有借鉴意义的
------解决方案--------------------------------------------------------
获取MAC

using System;
using System.Security.Cryptography;
using System.Management;
public ArrayList GetIt()
{
ManagementClass mc = new ManagementClass( "Win32_NetworkAdapterConfiguration ");
ManagementObjectCollection moc = mc.GetInstances();
ArrayList strArr = new ArrayList();

//网卡数
foreach(ManagementObject mo in moc)
{
if((bool)mo[ "IPEnabled "])
{
strArr.Add(mo[ "MacAddress "].ToString().Replace( ": ", " "));
}
mo.Dispose();
}

return strArr;
}
------解决方案--------------------------------------------------------
<HTML> <HEAD> <TITLE> WMI Scripting HTML </TITLE>
<META http-equiv=Content-Type content= "text/html; charset=gb2312 ">
<SCRIPT language=JScript event= "OnCompleted(hResult,pErrorObject, pAsyncContext) " for=foo>
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>

<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>