`
zhoushu126
  • 浏览: 81721 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

子网 IP 有效地址求取

 
阅读更多

子网 IP 有效地址求取

一、 需求:124.0.[22-25,28-29,31].0/24,117.123.16.0/22,113.73.0.0/17 只允许此区间IP传参数

二、 需求演变->需要求出每个IP区间的: 网络掩码、子网地址、广播地址、最小地址、最大地址

步骤:

1. 以113.73.0.0/17为例,详细推算如下:

2. 主机地址:01101110 01001011 00000000 00000000

3. 网络掩码:11111111 11111111 10000000 00000000

4. 子网地址:01101110 01001011 00000000 00000000 (113.73.0.0)

5. 子网地址 = 主机地址和网络掩码的与运算

6. 广播地址:01101110 01001011 01111111 11111111 (113.73.127.255)

7. 广播地址 = 子网地址和网络掩码的异或运算

8. 去掉一个网络地址(113.73.0.0)和去掉一个广播地址(113.73.127.255)

9. 最小地址:113.73.0.1

10. 最大地址:113.73.127.254

三、 涉及知识点:

1. IP 基本概念回顾:

IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节

IP地址分成了网络号和主机号两部分:

网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数)

主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)

根据2 的n次方转化为容易读懂的10进制如上

2. '/17' 代表 11111111.11111111.10000000.00000000 这个是子网掩码,也叫网络码,即:255.255.128.0

子网掩码中还可获得的信息是,1表示网络位,0表示主机位,

将子网掩码中的主机位变成1就得到了广播地址

3. 根据IP和子网掩码,可以算出IP的有效范围,用AND与运算,与运算核心是:

遇 0 得0,1与1得1可获得子网IP地址,子网中可用的IP地址就在子网IP地址与广播地址之间

4. IP 里面一般会存在一个广播地址和一个网络地址,这个两个地址一般是不能用的,可以看下详细资料

5. IP地址范围算法:

1) 公司有IP地址信息查询:(如:113.73.0.0 或113.73.0.0/17) 阳戈推荐比较好的方法:

http://soc.taobao.com:9999/soc/extend/?extend_feature=acl

中宏定义查询里面的ACL管理页签,大家以后如果要用到可以去看看。

可以算出113.73.0.0/17 所指的有效IP范围(113.73.0.0 - 113.73.127.255), 

2) 可以通过子网掩码计算器(IPSubnetter),如图:

 

3) 如果都没有只有用上面的方法手动算取

6. 正则

涉及的正则语法:

1) (?:pattern)

匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。

这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。

例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。

2) ^ 匹配输入字符串的开始位置,

如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。

3) 注意点,正则是一个标志位判断一次的,

例如:0-127就要分来三段来写正则校验,0-99,100-199,120-127


需求中三段IP的具体校验如下:


4) 注意:在java中使用正则,matches要求字符串整个匹配正则表达式,find要求字符串的一部分匹配表达式即可。

5) Java正则转义,如果正则如此写 pSpecialStr = Pattern.compile("[A-Za-z0-9_-.]*");执行报如下错误:

 

这里涉及正则的转义问题:

把“.”转义一下就可以了,方括号内中的字符类,在“.”左右两边有字符时表示一个字符到另一个字符之间的字符。而且必须是左边字符的值小于右边字符的值,这个产生语法错误的原因在于“+”的值小于“*”的值。最终可以如下写:[.A-Za-z0-9_-]*,像“-”也是一样

在普通的正则表达式中,15个具有特殊意义的元字符需要进行转义:

( [ { } ] ) \ ^ - $ | ? * + .

而在字符类中有点特殊,需要转义的有:

[ ] ^ - \

其中“-”放在字符类的两边的话,即放在左方括号右者右方括号的边上,也可以不用转义。


  • 大小: 148.1 KB
  • 大小: 158 KB
  • 大小: 212.2 KB
  • 大小: 39.3 KB
  • 大小: 70.6 KB
分享到:
评论

相关推荐

    易语言本机IP地址、子网掩码、DNS服务器地址设置

    "易语言本机IP地址、子网掩码、DNS服务器地址设置"是一个针对这些网络参数进行编程操作的主题,主要涉及Windows操作系统下的网络配置。易语言是一种以中文为编程语法的编程环境,它使得非计算机专业人员也能更容易地...

    IP地址与子网掩码

    IP地址的分配通常基于子网掩码来划分网络,以便更有效地管理网络资源。子网掩码的每一位对应IP地址的一部分,当子网掩码中的一位为1时,代表这部分是网络地址;为0时,代表这部分是主机地址。例如,255.255.255.0的...

    关于算IP地址、子网掩码

    在IT领域,网络基础知识是必不可少的一部分,而IP地址和子网掩码的计算则是网络配置和故障排查中的关键技能。本文将深入探讨IP地址、子网掩码的原理及其相关计算方法,帮助你应对考试或实际工作中的挑战。 首先,...

    IP地址分类-子网掩码-子网划分

    IP 地址分类、子网掩码、子网划分 IP 地址分类是计算机网络中的一种基础知识,它是指将 IP 地址分为不同的类别,以便于网络通信的实现。常见的 IP 地址分类有 A、B、C、D、E 五类,各类别的地址范围如下: * A 类...

    IP地址段与子网掩码计算表

    ### IP地址段与子网掩码计算表解析 在计算机网络中,IP地址与子网掩码是两个非常重要的概念,它们共同决定了一个网络中主机的通信方式以及网络的划分方式。本文将根据给定的“IP地址段与子网掩码计算表”中的数据,...

    IP地址知识子网掩码与子网划分

    通过子网划分,一个大的IP地址空间可以被有效地分割,以满足不同规模的网络区域,同时减少IP地址的浪费。例如,对于上述学校网络管理的例子,通过子网划分,一个大网络可以被分成四个独立的子网,每个子网支持25台...

    计算机网络IP地址与子网划分-测试题.pdf

    IP地址的有效性取决于其是否满足了IP地址的格式要求。例如,IP地址不能全为0或255,否则它将不是一个有效的IP地址。 5. 子网地址空间大小: 子网地址空间大小取决于子网掩码的位数。例如,子网掩码为255.255.255.0...

    ip地址管理与子网划分

    通过子网划分,我们可以更有效地利用IP地址空间。基本的子网划分是通过对IP地址的网络部分进行掩码操作来实现的。子网掩码也是一组32位的二进制数,与IP地址配合使用,确定哪些位属于网络部分,哪些属于主机部分。...

    IP地址管理与子网划分

    基本子网划分是按照固定位数来划分IP地址,例如,从32位的IPv4地址中取8位作为网络ID,其余作为主机ID。VLSM则允许根据需要灵活地分配不同的位数,以适应不同大小的网络需求,提高了地址利用率。 IP地址管理涉及IP...

    ip地址+子网综合计算

    2. **子网划分**:子网划分是根据网络需求将一个大的IP网络划分为多个小的子网,以更有效地管理IP地址。例如,试题二中,公司各部门主机数量不同,需要采用VLSM(变长子网掩码)进行子网划分。根据最大子网主机数20...

    简单的IP网络地址范围地址计算器

    3. 计算广播地址时,它会取IP地址的反码(即1的位对应于IP地址中的0的位,0的位对应于1的位),然后与网络地址做位或运算(`|`)。 4. 地址范围则通过网络地址加1和广播地址减1得出。 C语言是实现这种功能的理想...

    计算机网络子网划分经典计算

    将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。子网掩码常用点分十进制表示,我们还可以用网络前缀法表示子网掩码,即...

    子网划分详解很好哦全面

    - 取子网掩码反码并与IP地址进行逻辑与运算得到主机号: - 主机号:00000000 00000000 00000000 00001101 → 0.0.0.13 #### 三、子网掩码的划分 子网划分的目标是在一个已有的网络中创建多个更小的子网,以更好...

    IP地址划分教程

    在进行IP地址划分时,我们需要计算合适的子网位数,这取决于我们希望划分出多少个子网以及每个子网需要的主机数量。例如,如果初始网络有256个可用IP地址(/24子网掩码),我们可能需要划分成4个子网,每个子网至少...

    子网合并算法

    ### 子网合并算法详解 ...通过以上实例分析可以看出,子网划分的基本原理在于利用子网掩码来确定网络地址、广播地址以及有效IP地址范围。在实际操作中,熟悉这些计算规则对于网络规划和管理至关重要。

    子网划分软件、子网掩码计算

    子网划分是网络管理中的重要概念,特别是在大型网络中,为了有效地管理和分配IP地址资源,通常需要进行子网划分。子网掩码则是用于标识网络和主机部分的关键工具,它与IP地址配合使用,帮助网络设备理解IP地址的结构...

    巧妙口算,IPv4子网划分

    IPv4子网划分是网络工程师必须掌握的一项基础技能,它涉及到如何更有效地利用IP地址空间,通过子网掩码划分不同的子网。所谓子网掩码,就是用来区分一个IP地址中的网络部分和主机部分。在IPv4中,每个IP地址由32位二...

    IP分类子网掩码的计算方法[参考].pdf

    接着,取B类地址的默认子网掩码255.255.0.0,将其主机地址部分的前5位设置为1,得到255.255.248.0,这就是168.195.0.0的子网掩码。 子网掩码的计算有一个通用的模式,特别是在C类地址中。例如,C类地址的默认子网...

    300台电脑以上局域网ip划分

    综上所述,对于530台电脑的对等局域网,最合适的IP地址规划是使用B类IP,并设定子网掩码为255.255.252.0,这样可以有效地分配IP并确保所有计算机都在同一网段内,实现有效的通信。同时,通过网络标识和主机标识的...

Global site tag (gtag.js) - Google Analytics