首页 新闻 会员 周边 捐助

有一个多用户的Javaweb系统,如何采集每个用户使用该系统时所消耗的网络流量啊?

0
悬赏园豆:5 [待解决问题]

有一个多用户的Javaweb系统,如何采集每个用户使用该系统时所消耗的网络流量啊?注意是每个用户的,而不是所有用户加在一起总流量。
现在比较着急的问题就是当用户使用系统时,如何采集到用户的ip值和该ip所使用的网络流量,并且要将 时间+ip+网络流量 信息保存下来,然后要在web前端进行显示,后续还会利用这些信息进行统计分析。
这里为什么要获得ip的原因是用户可以在任意地点使用系统,用户没有对应的固定ip,我要通过这个ip值才能知道是哪个用户在使用。

北纬蓝天白云的主页 北纬蓝天白云 | 初学一级 | 园豆:179
提问于:2018-01-04 23:20
< >
分享
所有回答(1)
0

我测试好了

 

java 里写

/**
     * 获取客户端ip地址(可以穿透代理)
     * 
     * @param request
     * @return
     */
    public static String getRemoteAddr(HttpServletRequest request) {
        String ip = request.getHeader("X-Forwarded-For");
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_CLIENT_IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }
    private static final String[] HEADERS_TO_TRY = { 
        "X-Forwarded-For",
        "Proxy-Client-IP",
        "WL-Proxy-Client-IP",
        "HTTP_X_FORWARDED_FOR",
        "HTTP_X_FORWARDED",
        "HTTP_X_CLUSTER_CLIENT_IP",
        "HTTP_CLIENT_IP",
        "HTTP_FORWARDED_FOR",
        "HTTP_FORWARDED",
        "HTTP_VIA",
        "REMOTE_ADDR",
        "X-Real-IP"};
DanBrown | 园豆:1321 (小虾三级) | 2018-01-05 08:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册