常规的客户端信息,比如IP地址,操作系统语言,时区,浏览器等等就不提了,还能获取到哪些能判断客户端唯一性的信息?前提是不需要装控件之类的。我遇到的问题是我要在一个网站上注册账号,但这个网站一台机器只给注册5个号,在同一台机器上,不管是换IP,换系统语言,甚至MAC地址都改过,全都不让注册,但只要换一台机器,就能注册了,同样,换了的机器也只能注册5次。求解。

解决方案 »

  1.   

    对你上面的尝试我想,如果你游览他的网站,它向cookie中写入了信息,然后判断这个信息,你想,你上面的尝试,并没有涉及到cookie。当然情况不一定是我说的这样,我只是举个例子。
      

  2.   


    等等这个是c/s的程序,b/s的估计还是写在什么地方了(比如cookie)
    如果删除cookie楼主也试过...
    当我没说
      

  3.   

    很不幸cookie  早就试过了遇到这个问题时的第一反应就是清cookie , 不行之后才想着换IP啊,换系统语言什么的,甚至后来换MAC地址但全都不行地址是这里, Nexon游戏公司的注册页面
    http://passport.nexon.net/Registration/Signup.aspx?nexonTheme=Mabinogi只能注册5个,过了5个就提示 system error
      

  4.   

    是mac地址判断的吧
    mac地址是写在网卡里的,全球唯一
      

  5.   


    IE、遨游、火狐、Chrome , 全都用过了
      

  6.   

    取得ip地址加上cookie综合判断吧。
      

  7.   


    MAC地址不是能修改吗? 难道改了之后的是假象?
    我用的SMAC2.0  这个软件修改的MAC地址,修改之后 ipconfig后也确实显示的是修改后的MAC地址,这样改没用吗?
      

  8.   

    使用activex控件,获取详细的相关信息如序列号,CPU等
    通过web services等实现数据传递
      

  9.   

    楼主的问题,我遇到过,
    现在没有十全十美的解决方案限定 访客唯一标识有很多统计代码,统计独立访问,就要这个信息!网上很多用的是 cookie!cookie 缺点:1、不能跨浏览器  2、可以删除cookie MAC地址(客户端硬件信息):   只能用actice 才能获取,是IE only 的ip: 不用说了,可以很多台电脑共用一个IP
    我采用的是 flash cookie优点:跨浏览器,不同浏览器,获取到的是一个值
    缺点: 客户端可能没装flash 插件, 也可能清理 这个值!
    我认为,用cookie 最简单,能限制一般的用户就可以了。很多统计代码都是用的cookie
    在csdn 外包,我看到,有人就要求实现这个限制客户端唯一性的,就这个功能,开价10W。
      

  10.   


    这个页面打开后没有提示用户装任何控件啊,
    http://passport.nexon.net/Registration/Signup.aspx?nexonTheme=Mabinogi
    你试试呢谢谢啊因为我知道如果用户装了相关控件什么的,那人家想要什么数据都不在话下了,但这个页面没有任何提示需要装任何控件这也是我觉得奇怪的地方,他是用什么方法来判断我的唯一性的
      

  11.   

    看了看别的资料有提取CPU,MAC的现成代码却没有硬盘序列号,<br/>
    找了好久才找到提取硬盘序列号的参数。于是自己给补上了。 <br/>
     <p/>
    <script> 
    function disk() {//硬盘序列号 信息 
       var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
       var service = locator.ConnectServer("."); 
       var properties = service.ExecQuery("SELECT * FROM Win32_DiskDrive"); 
       var e = new Enumerator (properties); 
       
       document.write("<table border=1>"); 
        document.write("<caption>硬盘序列号 信息</caption>"); 
       for (;!e.atEnd();e.moveNext ()) 
       { 
          var p = e.item (); 
          document.write("<tr>"); 
          document.write("<td style='color:blue'>" + p.signature + "</td>"); 
          document.write("</tr>"); 
       } 
       document.write("</table>"); 

    disk();
    </script> 
    <p/>
    在这上找的代码: 
    对于写过ASP或.net 的人来说,通过asp或.net 语言来获得客户端的硬件信息是很熟悉的.
    但如何通过javascript这种客户端脚本来获得客户端的信息呢?请看以下实例: 
    <p/>
       <script id=clientEventHandlersJS language=javascript>    
    function Button1_onclick() {//CPU 信息 
       var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
       var service = locator.ConnectServer("."); 
       var properties = service.ExecQuery("SELECT * FROM Win32_Processor"); 
       var e = new Enumerator (properties); 
       document.write("<table border=1>"); 
       document.write("<caption>CPU 信息</caption>"); 
       for (;!e.atEnd();e.moveNext ()) 
       { 
          var p = e.item (); 
          document.write("<tr>"); 
          document.write("<td>" + p.Caption + "</td>"); 
          document.write("<td>" + p.DeviceID + "</td>"); 
          document.write("<td>" + p.Name + "</td>"); 
          document.write("<td>" + p.CpuStatus + "</td>"); 
          document.write("<td>" + p.Availability + "</td>"); 
          document.write("<td>" + p.Level + "</td>"); 
          document.write("<td style='color:blue'>" + p.ProcessorID + "</td>"); 
          document.write("<td>" + p.SystemName + "</td>"); 
          document.write("<td>" + p.ProcessorType + "</td>"); 
          document.write("</tr>"); 
       } 
       document.write("</table>"); 

       
    function Button2_onclick() {//软盘信息 
       var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
       var service = locator.ConnectServer("."); 
       var properties = service.ExecQuery("SELECT * FROM Win32_FloppyDrive"); 
       var e = new Enumerator (properties); 
       document.write("<table border=1>"); 
       document.write("<caption>软盘信息 </caption>"); 
       for (;!e.atEnd();e.moveNext ()) 
       { 
          var p = e.item (); 
          document.write("<tr>"); 
          document.write("<td>" + p.Description + "</td>"); 
          document.write("<td>" + p.DeviceID + "</td>"); 
          document.write("<td>" + p.Status + "</td>"); 
          document.write("<td>" + p.Manufacuturer + "</td>"); 
          document.write("</tr>"); 
       } 
       document.write("</table>"); 

       
    function Button3_onclick() {//CD-ROM 信息 
       var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
       var service = locator.ConnectServer("."); 
       var properties = service.ExecQuery("SELECT * FROM Win32_CDROMDrive"); 
       var e = new Enumerator (properties); 
       document.write("<table border=1>"); 
       document.write("<caption>CD-ROM 信息  </caption>"); 
       for (;!e.atEnd();e.moveNext ()) 
       { 
          var p = e.item (); 
          document.write("<tr>"); 
          document.write("<td>" + p.Caption + "</td>"); 
          document.write("<td>" + p.Description + "</td>"); 
          document.write("<td>" + p.Drive + "</td>"); 
          document.write("<td>" + p.Status + "</td>"); 
          document.write("<td>" + p.MediaLoaded + "</td>"); 
          document.write("</tr>"); 
       } 
       document.write("</table>"); 

       
    function Button4_onclick() {//键盘信息 
       var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
       var service = locator.ConnectServer("."); 
       var properties = service.ExecQuery("SELECT * FROM Win32_Keyboard"); 
       var e = new Enumerator (properties); 
       document.write("<table border=1>");
       document.write("<caption>键盘信息   </caption>");  
       for (;!e.atEnd();e.moveNext ()) 
       { 
          var p = e.item (); 
          document.write("<tr>"); 
          document.write("<td>" + p.Description + "</td>"); 
          document.write("<td>" + p.Name + "</td>"); 
          document.write("<td>" + p.Status + "</td>"); 
          document.write("</tr>"); 
       } 
       document.write("</table>"); 

       
    function Button5_onclick() {//主板信息 
       var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
       var service = locator.ConnectServer("."); 
       var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard"); 
       var e = new Enumerator (properties); 
       document.write("<table border=1>"); 
       document.write("<caption>主板信息   </caption>");  
       for (;!e.atEnd();e.moveNext ()) 
       { 
          var p = e.item (); 
          document.write("<tr>"); 
          document.write("<td>" + p.HostingBoard + "</td>"); 
          document.write("<td>" + p.Manufacturer + "</td>"); 
          document.write("<td>" + p.PoweredOn + "</td>"); 
          document.write("<td>" + p.Product + "</td>"); 
          document.write("<td style='color:blue'>" + p.SerialNumber + "</td>"); 
          document.write("<td>" + p.Version + "</td>"); 
          document.write("</tr>"); 
       } 
       document.write("</table>"); 

       Button1_onclick();
       Button2_onclick();
       Button3_onclick();
       Button4_onclick();
       Button5_onclick();
     
    </script> 
      

  12.   

    建议楼主做这样一个实验,
    在本机A安装一台虚拟机B,在A上注册,完了再在B环境中注册,
    看是否可以注册成功?请把结果贴上来
      

  13.   


    这是需要用户安装 WbemScripting.SWbemLocator 这个控件吧?  
      

  14.   

    不好意思啊,没看懂你的意思。我的意思不是我要做一个判断用户唯一性的网页。我的问题是我遇到这么一个网站,
    http://passport.nexon.net/Registration/Signup.aspx?nexonTheme=Mabinogi
    一家游戏公司申请账号的页面,他一台电脑只让注册5个号,超过5个后,在这台电脑上不管做什么修改,都不让注册,我奇怪的是他是用什么来判断我已经注册5个号了的。
      

  15.   

    感觉还是mac地址的问题,从这上面入手吧
      

  16.   

    硬件信息网站不可能通过浏览器拿到,这个不用考虑。LZ是不是安装了他们的游戏,浏览器的 user-agent 请求头可能有他们的标记。
      

  17.   

    楼主你肯定任何插件都没有安装吗?如果人家利用flash,照样可以获取你的硬件信息
      

  18.   


    我肯定没有安装他们那个网页的任何插件一般来说网页要求用户安装插件的话,浏览器或者杀毒软件(360)之类的会有提示,比如去icbc,支付宝之类的网站,都有提示,但这个网页没有任何提示。
    他是不是用了flash得到我的硬件信息,我就不清楚了。。这一块我也不熟悉大侠帮忙看看呢,网址是
    http://passport.nexon.net/Registration/Signup.aspx?nexonTheme=Mabinogi
    看下这个网页是不是用flash获取了客户机器的硬件信息人格担保这个网页不是什么木马病毒什么的,是Nexon公司洛奇这款游戏的账号注册页面
      

  19.   

    感觉必定是和ie有关,我用chrome压根就注册不了,而ie可以,也有限制,可能还是有插件吧
      

  20.   

    我看过才这么说的,引用的js我都下载了snare.js,我大致看了他们的js源代码,好像有flash的相关信息,
    肯定不是通过js或者一般的插件,flash也是插件啊,你确定你连flash都没安装吗?
      

  21.   


    我在一台重装了系统的机器上注册过,新装好的机器,确定没有安装Flash, 访问一般带Flash的网页浏览器都会提示需要安装Flash, 但我没装即便是这样去注册,还是一样
      

  22.   

    装了虚拟机做了测试。在一台已经不能注册(已经提示 system error)的机器上装了虚拟机,而且我一口气装了两套操作系统,在第一套系统中注册了1个号,然后到第二套系统中注册了4个号,之后回到第一套系统中,提示system error !!!  再回去第二套中,也不能注册了。诡诈啊多个虚拟系统都只给注册5个,他是怎么知道这两套虚拟系统是在同一台机器中的呢。
      

  23.   

    从你描述的虚机的情况,应该是flash插件了(或者其他可以隐式安装的插件),虚机的硬件和你真实系统是不一样的,但是相同的虚机,硬件信息是一样的,你应该在第一次注册成功后,检查浏览器插件
      

  24.   

    绑定硬件信息了,你换系统,装虚拟机,都是没用的,除非你换硬件,或者改硬件ID很是麻烦呀,lz不要挣扎了,
    换一个两个貌似都没什么用的,去网吧吧,一台五个,你多换几台机就可以有很多了
      

  25.   

    用控件或者FSO方式去获取客户端的信息。
      

  26.   

    获取IP简单, 一般像你做这个的目的是为了不让用户狂注册,根据IP限制只能注册是不行的,改下IP可以继续注册。
    我觉得要从MAC入手,得到MAC应该简单吧
      

  27.   

    基本上可以确定是检查IP
    你改本机的IP又没用,人家拿到的是你的公网IP,你要改公网IP才可以
      

  28.   

    我也认为是绑的ip  你直接把ip换别的机器试下就为限制下注册次数 或是防止恶意注册 绑硬件的话感觉没必要 
      

  29.   

    我用chrome怎么不能注册? 什么都填写了.都显示正确了.点击不了确定?
      

  30.   

    可以确定不是绑IP  
    因为我用了VPN去注册,换了不知道多少个IP,全没用,而且同一个局域网,大家的公网IP都一样,但我的机器上不能用后,换一台机器就好用了
      

  31.   

    问题就在snare.js里 这是在线防欺诈的 通过flash 读取硬件码, 你可以搜索 iesnare 这个和 iovation
      

  32.   

    这个网站也是呢,太诡异了,求高手
    http://app.91.com/Soft/iPhone/com.child.songs-2.1-2.1.html知道什么原理吗?