不太可能吧,HTTP是一种无状态的协议。还有,有几个用户有固定IP的,这个提议没有半点意义。asp和php可以吗?

解决方案 »

  1.   

    很有意义,投票系统就要考虑这个问题。asp和php是可以的!
      

  2.   

    jsp中嵌入applet,(自签名过的,否则无法调用exe)
    用applet调用ipconfig.exe /all,并且解析返回的结果得到你需要的东西。
      

  3.   

    To  super_zzw(之支吾):
    你可能理解错错了,ipconfig /all得到的是本机的IP设置,不是我要的东西。
      

  4.   

    ip是不可能的,不过可以用cookies
      

  5.   

    asp和php可以?
    应该不行吧,
    前段时间那个100论坛的投票,不是php做的,不过同一网段也只能投一次,
    如果你真的想一个机器投一次最好是用网卡上的MAC地址,
    不过这个一般来说不在客户端装东西是取不到的
      

  6.   

    MAC地址是不可能在服务器端获得的
      

  7.   

    做一个OCX,嵌入WEB进去。
    得到的才是客户端的。
      

  8.   

    MAC地址是可以修改的,现在比设置代理服务器还简单,所以这对防止别人利用技术手段重复投票不是好办法。
    我觉得JSP如果没有这个功能的话就应该改进了。顺便自己顶一下!
      

  9.   

    我以前做过文章统计点击率,把用户浏览新闻的IP、文章ID,点击时间,存在一张表里。统计时写SQL统计点击率
      

  10.   

    这个倒是比较现实的问题,一般得到的都是代理的ip地址;
    我倒没有听说过asp或者php能够得到由代理的客户端ip;
    我想应该有机制获取;
    如何获取也不清楚,顶
      

  11.   

    ASP可以取经过代理的客户端IP吗?
    学ASP这么久了还没听说过.
    用哪个对象呀?
      

  12.   

    MAC是可以改的?
    这个倒是没听说过,不过我想能改最多也只是改一下windows里的注册表啥的,骗一下而已,
    真的要改的话得刷网卡的eprom,我不知道这个好不好改
      

  13.   

    applet是运行在客户端的啊,在客户端调用ipconfig /all得到的当然是客户端的IP啊,这和你要的不是同一个东西???
      

  14.   

    super_zzw(之支吾) :有道理。看来这还这是个难题,有没有谁有更好的解决办法?
      

  15.   

    用匿名代理就不能获得真实IP了,只有透明代理才能得到真实IP。防止重复投票似乎没有绝对的方法。。
      

  16.   

    我想应该能得到这个机器的IP地址的,因为在数据报中有MAC网卡地址,而网卡地址与客户端IP地址和机器名是一一对应的。因此通过获取MAC地址能得到唯一IP的。请查查资料。不一定要得到IP地址,只要得到MAC地址就行了,因为IP地址在局域网中能随便改。
      

  17.   

    To lyneville(心佛):取得的IP不真实,用网段判断也是没有用的。另:同意你考虑不同平台的看法。
    To wydcs(天外来痴):IP在局域网内修改无所谓,但其上互联网的出口IP是相对固定的,取MAC地址也是一种较好的办法,但实现起来就比较麻烦。
    To unijune(uni):我看了一个网站的投票系统,发现走匿名代理的重复投票也无效,是PHP写的,所以我就比较郁闷了。UP!!!
      

  18.   

    To unijune(uni):匿名代理取不到真实IP是正常的,但jsp连通过透明代理后的真实IP都取不到。
      

  19.   

    To unijune(uni):不是取不到,应该是我现在没有办法,呵呵。大家继续。
      

  20.   

    嘿嘿,大家讨论的东西我一年半前就做好了,
    又有人问获取客户端真实IP,于是我又有了一个炫耀的机会做了一个ActiveX控件,读取客户端的信息,包括CPU序列号,网卡MAC地址,硬盘序列号,主板序列号,真实IP,网关,掩码,DNS由于是ActiveX控件,所以客户端一定要是Windows + IE
      

  21.   

    To d_selenite(计算机的奴隶):能否共享一下?[email protected],谢谢!
      

  22.   


    JSP获取用户真实IP地址
    (大致原理是这样,但我没有测试过。)String strIP = "";
    String strFF = request.getHeader("X_Forwarded_For");if(strFF.equals("") || strFF"unknown")>=0 ){
    strIP = request.getLocalAddr();
    } else if (strFF.indexOf(",")>=0 ){
    strIP = strFF.substring(0, strFF.indexOf(","));
    } else if (strFF.indexOf(";")>=0 ){
    strIP = strFF.substring(0, strFF.indexOf(";"));
    } else {
    strIP = strFF;
    }
    strIP = strIP.substring(0, 30).trim();
      

  23.   

    纯java的实现方式估计只有嵌入applet一途可寻,给你看一段applet的init方法中的实现吧:        String os = System.getProperty("os.name");
                if(os != null && os.startsWith("Windows"))
                {
                    String command = "cmd.exe /c ipconfig /all";
                    Process p = Runtime.getRuntime().exec(command);
                    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String line;
                    while((line = br.readLine()) != null) 
                        if(line.indexOf("Physical Address") > 0)
                        {
                            int index = line.indexOf(":");
                            index += 2;
                            macAddr = line.substring(index);
                            break;
                        }
                    br.close();
                    System.out.println("macAddr is " + macAddr.trim());
                }
      

  24.   

    你可以在前端页面递交的时候用js来调用applet中的方法,比如getMac(),然后设置到页面表单隐藏字段中
    在服务端就可以从request中得到客户端的mac地址或者其它你需要的信息了。当然,你可以修改一下代码适应多种操作系统。
      

  25.   

    To cuixiping(无心):ServletRequest没有getHeader方法,将其转换成HttpServletRequest才有这个方法,但request.getHeader("X_Forwarded_For")是空值:(大家知道getHeader里头还有什么属性吗?
      

  26.   

    有人给出下面的代码:
    if (request.getHeader("HTTP_X_FORWARDED_FOR") == null) {
            ip = request.getRemoteAddr();}
    else {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
    }
    我试了一下,也没有用,request.getHeader("HTTP_X_FORWARDED_FOR") 始终为空。
      

  27.   

    难道真的如super_zzw(之支吾)所说:“纯java的实现方式估计只有嵌入applet一途可寻”?