如题2.怎么获取客户端的真实IP,非代理的.

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【lovehai】截止到2008-06-23 10:52:26的历史汇总数据(不包括此帖):
    发帖数:3                  发帖分:90                 
    结贴数:3                  结贴分:90                 
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  2.   

    1. 字符串替换,很简单。
    2. 估计用javascript调用active x可能可以,但是多半会被禁止运行。
    3. 这么做没有意义。因为客户端也许是内网IP,你要他做什么。你的数据库里面也许192.168.1.2也许的会有一大大堆。
      

  3.   

    struts2似乎不行,但是用jstl可以简单实现以下
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <%
    String ip = "111.111.111.111";
    request.setAttribute("ip",ip);
    %>
    <c:out value="${fn:substring(ip,0,12)}*"></c:out>结果是:111.111.111.*
      

  4.   

    虽然我不熟悉jstl。不过我想说的是 4楼 你这样不对的。你substring(ip,0,12)。你能保证IP都是满位的?假如我是192.168.1.47。那么你就错了替换的话。Struts2的标签应该没有直接支持的功能。得自己加些处理。我稍微提示点笨办法,抛砖引玉下:
    可以先lastIndexOf(),再substring;
    也可以用split()分组。
      

  5.   

    恩,确实有这问题,我只是简单写了一下,没注意到,如果楼主用的是Java EE 5的话,包里面直接带了jstl楼主可以这么写,引入上买你的标签,然后 <c:set var="array" value='${fn:split(ip,".")}'/>
    <s:property value="%{'${array[0]}.${array[1]}.${array[2]}.*'}"/>
      

  6.   

    struts标签应该是没有办法操作字符串的。
    我之前的做法是有js。
    不过显然7楼的更好些。