下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-ip名单设计最近直在做系统的接开发,接对于安全性有定的要求,采了定的安全措施,各种加解密,证书段也采了。做了这些常见的安全措施之后,考虑到限制法ip的访问,决定采ip名单设计,只允许部分许可ip访问系统,未许可ip律禁访问,减少法请求。好了,归正传,说下需求。名单设计需求1. 持ipv42. 持多种校验规则3. 持单个,多个,ip范围,段ip封禁策略4. 后期要求持ipv6解决案好了,有了以上需求,我们就需要,动开发了,开发之前,我们先来普及下基本的络知识现在的IP络使32位地址,以点分进制表,如172.16.0.0。地址格式为:IP地址=络地址主机地址 或 IP地址=主机地址地址主机地址。
2、在IP地址3种主要类型,各保留了3个区域作为私有地址,其地址范围如下:A类地址:10.0.0.010.255.255.255B类地址:172.16.0.0172.31.255.255C类地址:192.168.0.0192.168.255.255A类地址的第组数字为1126。注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,数字0则表该地址是本地宿主机,不能传送。B类地址的第组数字为128191。C类地址的第组数字为192223。般公司上配置络地址时,都需要配置 主机地址,掩码,默认关,dns地址主机地址:即该主机在该段的唯标识 如 192.168.1.1掩码:即标识该主机所在
3、范围,区分络段和地址段默认关: 个于 TCP/IP 协议的配置项,是个可直接到达的 IP 路由器的 IP 地址。配置默认关可以在 IP 路由表中创建个默认路径。 台主机可以有多个关。默认关的意思是台主机如果找不到可的关,就把数据包发给默认指定的关,由这个关来处理数据包。现在主机使的关,般指的是默认关。 台电脑的默认关是不可以随随便便指定的,必须正确地指定,否则台电脑就会将数据包发给不是关的电脑,从法与其他络的电脑通信。默认关的设定有动设置和动设置两种式dns地址:于解析域名信息和ip地址好的,基础络知识普及完毕。名单设计关键:包含多个规则,可以设计分隔符,分离规则字符串为多个规则列表,分割字符
4、;,都可。单个ip,和多个ip名单匹配规则,只要判断该规则中是否包含远端ip字符即可,实现简单如规则符:192.168.1.1;192.168.1.2ip范围:范例规则字符-192.168.1.1-192.168.1.15即ip在 192.168.1.0/24 段 1-15都为合法,默认为范围闭区间设计思路:ipv4 分为4段,每段范围:0-255所以先找出范围ip不同部分所在的段,然后依据ip划分规则,计算例如 192.168.0.0-192.168.2.15包含 段 192.168.0.0 -192.168.0.255,192.168.1.0-192.168.1.255,192.168.2
5、.0-192.168.2.15所以只要在这个范围中ip都是合法的段地址如何判断尼,请观察 段地址规则,例如192.168.31.0/24络地址/络位数络地址:192.168.31.0掩码:255.255.255.0测试ip:192.168.31.1络地址=ip&所以判断个ip是否属于个段可以通过ip和相与得到络地址,如果和名单中络地址相同,则允许访问好的,分析完毕上代码:/* ip 名单校验*/public final class IpWhiteCheckUtil / IP的正则private static Pattern pattern = Pattern/* getAvaliIpList:
6、().* date 2017-4-17 02:50:20* param ipConfig* return*/private static Set getAvaliIpList(String allowIp) String splitRex = allowIp.split(;);/ 拆分出名单正则Set ipList = new HashSet(splitRex.length);for (String allow : splitRex) if (allow.contains(*) / 处理通配符*String ips = allow.split(.);String from = new Stri
7、ng 0, 0, 0, 0 ;String end = new String 255, 255, 255, 255 ;List tem = new ArrayList();for (int i = 0; i -1) tem = complete(ipsi);fromIP.append(fromi).append(.);endIP.append(endi).append(.); else fromIP.append(*.);endIP.append(*.);return ipList;/* 节点进范围限定* param arg* return List10;19, 100;199*/privat
8、e static List complete(String arg) List com = new ArrayList();int len = arg.length();if (len = 1) com.add(s1);String s2 = complete(arg, 2);if (s2 != null)com.add(s2); else String s1 = complete(arg, 1);if (s1 != null)com.add(s1);if (Integer.valueOf(from) 255)return null;if (Integer.valueOf(end) 255)e
9、nd = 255;/* return*/private static boolean validate(String ip) if (!pattern.matcher(s).matches() /* isPermited:(IP,Ipip).* date 2017-4-17 03:01:03* param ip* param ipList* return*/private static boolean isPermited(String ip, Set ipList) if (ipList.isEmpty() | ipList.contains(ip)return true;for (Stri
10、ng allow : ipList) if (allow.indexOf(-) -1) / 处理 类似 192.168.0.0-192.168.2.1String tempAllow = allow.split(-);String from = tempAllow0.split(.);String end = tempAllow1.split(.);String tag = ip.split(.);boolean check = true;for (int i = 0; i 4; i+) / 从左到右进逐段匹配int s = Integer.valueOf(fromi);int t = Int
11、eger.valueOf(tagi);int e = Integer.valueOf(endi);if (!(s = t & t = e) check = false;break;if (check)String netmask = allow.substring(splitIndex + 1);/ 24/ ip 转进制long ipLong = ipToLong(ip);/* date 2017-4-17 03:01:37* return*/return false;Set ipList = getAvaliIpList(ipWhiteConfig);/ .的位置int position1 = strIP.indexOf(.);ip0 = Long.parseLong(strIP.substring(0, position1);ip1 = Long.parseLong(strIP.substring(position1 + 1, position2);ip2 = Long.parseLong(strIP.substring(position2 + 1, position3);ip3 = Long.parseLong(strIP.substring(position3 + 1);return (ip0 24) + (ip1 16)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工智能在保险合规监督中的作用
- 人工智能在监管合规评估中的应用研究
- 人力资源副经理年度工作述职报告
- 保险AI算力安全认证
- 彩绘施工方案及施工方案
- 钢琴兴趣班教学计划
- 2026年集团资产管理办法
- 海边施工桩基施工方案
- 人教版小学六年级科学生态系统教案
- AI在智能营销中的应用探索
- 灰岩地区长大隧道机械化快速施工技术
- 《勾股定理》整章综合测试(一)338345
- (完整)注册安全工程师考试题库(含答案)
- GB/T 17880.6-1999铆螺母技术条件
- YY 0899-2020医用微波设备附件的通用要求
- JJF 1915-2021倾角仪校准规范
- GB/T 325-2000包装容器钢桶
- 执行-如何完成任务的学问课件
- 临床实践中的循证医学(课件新修)
- 特种作业人员安全操作规程
- 抢救病人现场记录单
评论
0/150
提交评论