📄 ipmonitor.java~38~
字号:
package com.redmoon.forum.security;
import javax.servlet.http.HttpServletRequest;
import cn.js.fan.web.SkinUtil;
import com.redmoon.forum.*;
import cn.js.fan.util.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class IPMonitor {
private String message;
public IPMonitor() {
}
public boolean isValid(HttpServletRequest req, String ip) {
if (ip == null || ip.trim().equals(""))
return true;
ForbidIPDb fid = new ForbidIPDb();
fid = fid.getForbidIPDb(ip);
// System.out.println("userservice.java ip=" + ip);
if (fid.isLoaded()) {
String str = SkinUtil.LoadString(req,
"res.forum.security.IPMonitor",
"err_forbidden");
message = str + fid.getReason();
return false;
}
ForbidIPRangeDb fir = new ForbidIPRangeDb();
if (!fir.isValid(ip)) {
String str = SkinUtil.LoadString(req,
"res.forum.security.IPMonitor",
"err_forbidden");
message = str + fir.getReason();
return false;
}
return true;
}
public static boolean IsValidIP(String ip) {
String[] ips = ip.split("\n");
for (int i = 0; i < ips.length; i++) {
if (!ips[i].trim().matches("^([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$") &&
!ips[i].trim().matches("^([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.\\*$") &&
!ips[i].trim().matches("^([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.\\*\\.\\*$") &&
!ips[i].trim().matches(
"^([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.\\*\\.\\*\\.\\*$")) {
return false;
}
}
return true;
}
// 管理员后台IP访问验
public boolean isValidAdmin(String ip) {
if (ip == null || ip.trim().equals(""))
return true;
String[] ary = StrUtil.split(ip, "\\.");
String u = "";
int len = ary.length;
for (int j = 0; j < len; j++) {
if (ary[j].length() < 3)
ary[j] = StrUtil.PadString(ary[j], '0', 3 - ary[j].length(), true);
u += ary[j];
}
long ul = 0;
try {
ul = Long.parseLong(u);
} catch (Exception e) {
return false;
}
String e = "", b = "";
RegConfig rcfg = new RegConfig();
String[] ips = rcfg.getStringArrProperty("adminIPVisitList");
for (int i = 0; i < ips.length; i++) {
e = "";
b = "";
String[] ary1 = StrUtil.split(ips[i], "\\.");
len = ary1.length;
for (int k = 0; k < len; k++) {
if (!ary1[k].equals("*")) {
if (ary1[k].length() < 3)
ary1[k] = StrUtil.PadString(ary1[k], '0',
3 - ary1[k].length(), true);
b += ary1[k];
e += ary1[k];
} else {
b += "000";
e += "255";
}
}
long bl = Long.parseLong(b);
long el = Long.parseLong(e);
System.out.print("ul=" + ul);
System.out.print("bl=" + bl);
System.out.print("el=" + el);
if (ul >= bl && ul <= el) {
return true;
}
}
return false;
}
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -