控制ip范围内访问(转)
2016-09-08 10:51
155 查看
通过ipIsValid方法来验证用户ip是否在指定范围内,获取用户ip:
String localIp = StringUtil.getIpAddr(request);
String localIp = StringUtil.getIpAddr(request);
if(ipIsValid("192.168.100.1-192.168.100.255", localIp) || ipIsValid("200.100.192.0-200.100.192.20", localIp)) { system.out.println("在ip范围内,可以访问!"); } else { system.out.println("不在ip范围内,不可以访问!"); } /** * 检测用户ip是否在指定ip范围内 * @param string * @param localIp * @return */ private boolean ipIsValid(String ipSection, String ip) { if (ipSection == null) throw new NullPointerException("IP段不能为空!"); if (ip == null) throw new NullPointerException("IP不能为空!"); ipSection = ipSection.trim(); ip = ip.trim(); final String REGX_IP = "(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])"; final String REGX_IPB = REGX_IP + "\\-" + REGX_IP; if (!ipSection.matches(REGX_IPB) || !ip.matches(REGX_IP)) return false; int idx = ipSection.indexOf('-'); String[] sips = ipSection.substring(0, idx).split("\\."); String[] sipe = ipSection.substring(idx + 1).split("\\."); String[] sipt = ip.split("\\."); long ips = 0L, ipe = 0L, ipt = 0L; for (int i = 0; i < 4; ++i) { ips = ips << 8 | Integer.parseInt(sips[i]); ipe = ipe << 8 | Integer.parseInt(sipe[i]); ipt = ipt << 8 | Integer.parseInt(sipt[i]); } if (ips > ipe) { long t = ips; ips = ipe; ipe = t; } return ips <= ipt && ipt <= ipe; }
相关文章推荐
- Tomcat针对IP的访问控制
- 根据 crazycode的建议,修改通过IP控制权限访问网站的部分代码
- 外网IP通过路由器映射内网某台地址IP(http直接访问、远程桌面控制)
- 华为交换机上IP与MAC绑定,建立访问控制列表,实现只有经批准的PC才能接入网络。
- 去掉IE自动弹出“该页正在访问其控制范围之外的信息,这有些危险,是否继续?”对话框
- 该页正在访问其控制范围之外的数据。这有些危险。是否继续?
- .htaccess控制访问web的ip
- 路由器ip访问控制列表的功能机器配置
- 类的访问修饰符控制范围
- 利用Windows2003 IP安全策略实现服务器远程桌面端口(3389)访问控制
- IP限制访问控制
- 利用IP标准访问列表进行网络流量的控制
- 解决该页正在访问其控制范围之外的数据。这有些危险。是否继续?
- 外网IP通过路由器映射内网某台地址IP(http直接访问、远程桌面控制)
- 使用IP ACL实现单向访问控制
- 解决该页正在访问其控制范围之外的数据。这有些危险。是否继续?
- struts的ip访问控制
- 一段debian 下面Iptables脚本控制ip访问的例子。
- svn的权限设置 - 控制某库的访问范围
- 使用IP ACL实现单向访问控制