亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? userconnectmanage.java

?? easyweb的使用
?? JAVA
字號:
package com.easyjf.web;

import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.apache.log4j.Logger;

/**
 * 
 * <p>
 * Title:用戶入侵檢測信息
 * </p>
 * <p>
 * Description:用于判斷用戶刷新情況檢查,默認為10秒鐘之內連續連接10次為超時
 * </p>
 * <p>
 * Copyright: Copyright (c) 2006
 * </p>
 * <p>
 * Company: www.easyjf.com
 * </p>
 * 
 * @author 蔡世友
 * @version 1.0
 */
public class UserConnectManage {
	private static final Logger logger = (Logger) Logger
			.getLogger(UserConnectManage.class.getName());

	private static int maxFailureTimes = 10;// 最大登錄失敗次數

	private static long maxFailureInterval = 10000;// 毫秒,達到最大登錄次數且在這個時間范圍內

	private static long waitInterval = 60000;// 失敗后接受連接的等待時間,默認1分鐘

	private static int maxOnlineUser = 200;// 同時在線的最大數

	private final static Map users = new HashMap();// 使用ip+userName為key存放用戶登錄信息UserLoginAuth

	private static Thread checkThread = null;

	private static class CheckTimeOut implements Runnable {
		private Thread parentThread;

		public CheckTimeOut(Thread parentThread) {
			this.parentThread = parentThread;
			synchronized (this) {
				if (checkThread == null) {
					checkThread = new Thread(this);
					// System.out.println("創建一個新線程!");
					checkThread.start();
				}
			}
		}

		public void run() {
			while (true) {
				if (parentThread.isAlive()) {
					try {
						Thread.sleep(2000);
						int i = 0;
						if (users.size() > maxOnlineUser)// 當達到最大用戶數時清除
						{
							synchronized (users) {// 執行刪除操作
								Iterator it = users.keySet().iterator();
								Set set = new HashSet();
								Date now = new Date();
								while (it.hasNext()) {
									Object key = it.next();
									UserConnect user = (UserConnect) users
											.get(key);
									if (now.getTime()
											- user.getFirstFailureTime()
													.getTime() > maxFailureInterval)// 刪除超時的用戶
									{
										set.add(key);
										logger.info("刪除了一個超時的連接" + i);
										i++;
									}
								}
								if (i < 5)// 如果刪除少于5個,則強行刪除1/2在線記錄,犧牲性能的情況下保證內存
								{
									int num = maxOnlineUser / 2;
									it = users.keySet().iterator();
									while (it.hasNext() && i < num) {
										set.add(it.next());
										logger.info("刪除了一個多余的連接" + i);
										i++;
									}
								}
								users.keySet().removeAll(set);
							}
						}

					} catch (Exception e) {
						e.printStackTrace();
					}

				} else {
					break;
				}
			}
			logger.info("監視程序運行結束!");
		}
	}

	// 通過checkLoginValidate判斷是否合法的登錄連接,如果合法則繼續,非法則執行
	public static boolean checkLoginValidate(String ip, String userName)// 只檢查認證失敗次數
	{
		boolean ret = true;
		Date now = new Date();
		String key = ip + ":" + userName;
		UserConnect auth = (UserConnect) users.get(key);
		if (auth == null)// 把用戶當前的訪問信息加入到users容器中
		{
			auth = new UserConnect();
			auth.setIp(ip);
			auth.setUserName(userName);
			auth.setFailureTimes(0);
			auth.setFirstFailureTime(now);
			users.put(key, auth);
			if (checkThread == null)
				new CheckTimeOut(Thread.currentThread());
		} else {
			if (auth.getFailureTimes() > maxFailureTimes) {
				// 如果在限定的時間間隔內,則返回拒絕用戶連接的信息
				if ((now.getTime() - auth.getFirstFailureTime().getTime()) < maxFailureInterval) {
					ret = false;
					auth.setStatus(-1);
				} else if (auth.getStatus() == -1
						&& (now.getTime()
								- auth.getFirstFailureTime().getTime() < (maxFailureInterval + waitInterval)))// 重置計數器
				{
					ret = false;
				} else {
					auth.setFailureTimes(0);
					auth.setFirstFailureTime(now);
					auth.setStatus(0);
				}

			}
			// 登錄次數加1
			auth.setFailureTimes(auth.getFailureTimes() + 1);
		}
		// System.out.println(key+":"+auth.getFailureTimes()+":"+ret+":"+(now.getTime()-auth.getFirstFailureTime().getTime()));
		return ret;
	}

	public static void reset(String ip, String userName)// 重置用戶信息
	{
		Date now = new Date();
		String key = ip + ":" + userName;
		UserConnect auth = (UserConnect) users.get(key);
		if (auth == null)// 把用戶當前的訪問信息加入到users容器中
		{
			auth = new UserConnect();
			auth.setIp(ip);
			auth.setUserName(userName);
			auth.setFailureTimes(0);
			auth.setFirstFailureTime(now);
			users.put(key, auth);
		} else {
			auth.setFailureTimes(0);
			auth.setFirstFailureTime(now);
		}
	}

	public static void remove(String ip, String userName)// 刪除用戶在容器中的記錄
	{
		String key = ip + ":" + userName;
		users.remove(key);
	}

	public static void clear()// 清空容器中內容
	{
		if (!users.isEmpty())
			users.clear();
	}

	public static long getMaxFailureInterval() {
		return maxFailureInterval;
	}

	public static void setMaxFailureInterval(long maxFailureInterval) {
		UserConnectManage.maxFailureInterval = maxFailureInterval;
	}

	public static int getMaxFailureTimes() {
		return maxFailureTimes;
	}

	public static void setMaxFailureTimes(int maxFailureTimes) {
		UserConnectManage.maxFailureTimes = maxFailureTimes;
	}

	public static int getMaxOnlineUser() {
		return maxOnlineUser;
	}

	public static void setMaxOnlineUser(int maxOnlineUser) {
		UserConnectManage.maxOnlineUser = maxOnlineUser;
	}

	public static long getWaitInterval() {
		return waitInterval;
	}

	public static void setWaitInterval(long waitInterval) {
		UserConnectManage.waitInterval = waitInterval;
	}

	public static void test() {
		System.out.println("開始運行!");
		for (int i = 0; i < 30; i++) {
			for (int j = 0; j < 30; j++) {
				UserConnectManage.checkLoginValidate("127.0.0." + j, "csy" + j);
			}
			try {
				Thread.sleep(1000);// 暫停1秒
				// return;
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		System.out.println("結束運行!");
	}

	

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色丁香久久婷婷综合_中| 欧美精品一区二区在线播放| 777午夜精品视频在线播放| 日韩视频一区二区三区 | 亚洲国产视频网站| 日韩成人免费电影| 国产99久久久精品| 欧美久久一区二区| 久久精品日产第一区二区三区高清版 | 国产精品卡一卡二| 无吗不卡中文字幕| 国产69精品久久777的优势| 91国模大尺度私拍在线视频| 欧美一区三区二区| 中文字幕日韩一区| 五月天久久比比资源色| 国产91精品久久久久久久网曝门| 欧洲精品中文字幕| 久久精品免视看| 香蕉影视欧美成人| 99久久精品情趣| 日韩欧美国产小视频| 亚洲欧美另类久久久精品2019 | 久久亚洲精华国产精华液| 亚洲色图清纯唯美| 国内国产精品久久| 欧美色欧美亚洲另类二区| 亚洲国产精品t66y| 蜜桃视频免费观看一区| 色综合一个色综合亚洲| 精品国产三级a在线观看| 一区二区激情小说| 粉嫩高潮美女一区二区三区| 91精品国产日韩91久久久久久| 国产精品每日更新| 黄网站免费久久| 欧美一区二区视频在线观看| 亚洲三级电影网站| 成人免费高清在线| 日韩美女在线视频| 三级在线观看一区二区| 色综合欧美在线| 中文字幕欧美国产| 国产一区二区三区四区在线观看| 欧美日韩不卡一区| 亚洲永久免费视频| 91在线一区二区| 日本一区二区视频在线观看| 蓝色福利精品导航| 制服丝袜中文字幕一区| 一区二区欧美在线观看| 99视频精品免费视频| 久久久久88色偷偷免费| 激情亚洲综合在线| 欧美一级精品在线| 日本中文字幕一区二区视频| 欧美综合久久久| 亚洲一区在线播放| 欧洲人成人精品| 亚洲激情中文1区| 色综合网站在线| 亚洲精选视频免费看| 91亚洲午夜精品久久久久久| 国产精品久久久久久久久久免费看| 国产乱一区二区| 久久久亚洲精品石原莉奈 | 中文一区一区三区高中清不卡| 韩国女主播一区| 久久久久久影视| 激情综合五月天| 久久综合久久久久88| 国内精品久久久久影院色| 精品久久久久久久人人人人传媒| 蜜桃久久av一区| 日韩欧美一级特黄在线播放| 美女视频一区在线观看| 日韩免费电影一区| 国产老妇另类xxxxx| 国产三区在线成人av| 国产91综合一区在线观看| 中文字幕免费一区| 99精品视频在线观看| 亚洲女性喷水在线观看一区| 色婷婷国产精品久久包臀| 亚洲一区二区av在线| 欧美精品 日韩| 久久99精品网久久| 久久久精品黄色| 91色porny在线视频| 亚洲综合小说图片| 制服视频三区第一页精品| 毛片一区二区三区| 久久精品夜色噜噜亚洲a∨| 成人黄色软件下载| 一区二区三区四区在线免费观看| 欧美日韩精品免费观看视频| 久久国产精品色婷婷| 欧美国产精品一区二区| 91视频你懂的| 日韩不卡一区二区| 久久久精品国产免费观看同学| 99久久婷婷国产| 日韩在线一区二区三区| 久久综合久久鬼色中文字| 成人福利在线看| 亚洲成人你懂的| 欧美精品一区二区三区蜜臀| 99久久国产综合精品女不卡 | 日韩欧美中文一区二区| 国产成人精品亚洲日本在线桃色| 亚洲欧美日韩国产综合在线| 欧美日韩高清影院| 国产成人av电影在线| 亚洲一级在线观看| 久久精品免费在线观看| 色诱亚洲精品久久久久久| 老司机午夜精品| 亚洲伦理在线精品| 欧美成人bangbros| 91免费观看视频| 美腿丝袜亚洲色图| 日韩理论片中文av| 日韩欧美成人一区| 一本大道久久a久久综合| 麻豆极品一区二区三区| 中文字幕一区二区三区色视频| 欧美夫妻性生活| av影院午夜一区| 韩国v欧美v日本v亚洲v| 一区二区三区自拍| 国产亚洲婷婷免费| 91精品国产综合久久久久久 | 亚洲人xxxx| 久久久亚洲高清| 6080国产精品一区二区| 99久久精品免费精品国产| 九一久久久久久| 亚洲国产美国国产综合一区二区| 日本一区二区三区四区在线视频| 91精品欧美综合在线观看最新| av亚洲精华国产精华| 九一九一国产精品| 亚洲成人av电影| 亚洲美女免费视频| 日本一区二区久久| 久久婷婷色综合| 91精品在线免费观看| 欧美在线视频你懂得| 播五月开心婷婷综合| 精品在线一区二区| 日韩高清欧美激情| 亚洲综合999| 亚洲婷婷综合久久一本伊一区| 久久久久久久网| 欧美一区二区国产| 精品视频在线看| 色哟哟一区二区在线观看| 国产suv精品一区二区6| 麻豆成人免费电影| 日韩精品三区四区| 亚州成人在线电影| 亚洲黄一区二区三区| 国产精品理伦片| 国产精品美女一区二区三区| 2020国产精品自拍| 久久众筹精品私拍模特| 日韩欧美二区三区| 日韩欧美在线影院| 欧美一区二区三区四区久久| 精品视频1区2区| 欧美视频一区二区在线观看| 91国产成人在线| 色欧美88888久久久久久影院| 成人精品gif动图一区| 国产69精品久久99不卡| 国产丶欧美丶日本不卡视频| 久久国产麻豆精品| 激情综合一区二区三区| 国产一区美女在线| 国产乱码字幕精品高清av| 国产精品99久久久久久宅男| 国产一区二区三区精品视频| 国产综合久久久久久鬼色| 国内精品久久久久影院色| 国产一区二区毛片| 国产精品一区在线观看乱码| 国产精品99久久不卡二区| 国产精品99久久久| youjizz国产精品| 99麻豆久久久国产精品免费优播| 成人18视频在线播放| 色综合天天狠狠| 欧美在线播放高清精品| 欧美精品在线视频| 日韩一区二区三| 久久综合国产精品| 国产精品国产自产拍在线| 亚洲欧美国产三级| 午夜电影一区二区| 久久精品99国产国产精|