子网掩码 与同一网段

子网掩码是必填的。子网掩码的作用,通俗一点就是 就是用来分割子网和区分那些ip是同一个网段的,那些不是同一网段的。

以前以为ip地址的第三组数字就是网段,其实大错特错了。

其实同一网段指的是IP地址和子网掩码相与得到相同的网络地址

特点

 共32位二进制,由连续的“1”和连续的"0"组成,左边向右全是1,右边向左全是0.

标准子网掩码是你鼠标一点就出现的子网掩码。

子网掩码的应用

 用来表示IP地址所处的网络位置,进而用于判断下列两台主机间能否连通。

所以,判断两台主机能否连通不是仅仅看的ip地址来的,还需要看子网掩码。

通过子网掩码来看能否连通。两台主机的子网掩码要相同的,如果不相同,那么都不用看了,肯定连不通。

网络号计算举例

一、

1)ip地址:192.168.1.1

    子网掩码:255.255.255.0           算出来的网号是:192.168.1.0

 2) ip地址:192.168.1.2

    子网掩码:255.255.255.0    算出来的网号是:192.168.1.0

他们是同属于一个网段的ip地址。

二、

1)ip地址:192.168.1.1

子网掩码:255.255.255.0   算出来的网断号是:192.168.1.0

2)ip地址:192.168.1.2

子网掩码:255.255.0.0   算出来的网断号是:192.168.0.0

这两个ip地址虽然在不看掩码的情况下,比较像,但他们并不是同一个网段内的。

 

三、如何计算出网号

方法一)

  • 将ip地址192.168.1.1转换为二进制           11000000 10101000 00000001 00000001
  • 将子网掩码255.255.255.0转换成二进制   11111111   11111111  11111111 00000000  
  • 然后将两者相“与(and)"运算,然后得到11000000     10101000     00000001  00000000("与运算"就是1与1=1 1与0=0 0与1=0 0与0=0)
  • 转换成10进制就是网络号:192.168.1.0

方法二)

  • 技巧快捷方式:任何数 与 255 =任何数,任何数 与 0 =0  ;譬如:192.168.1.1  和   255.255.255.0    网号=192.168.1.0

 

                                                           

 

 

 

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IPv6的地址格式比较复杂,但是可以通过一些工具函数进行解析。下面是一个示例代码,可以判断两个IPv6地址是否在同一网段中,且子网掩码为1-64位: ```javascript function ipv6InSubnet(ipv6Addr1, ipv6Addr2, prefixLength) { // 将IPv6地址转换为二进制格式 const ipv6Binary1 = ipv6ToBinary(ipv6Addr1); const ipv6Binary2 = ipv6ToBinary(ipv6Addr2); // 获取前缀长度(即子网掩码位数) const prefixLen = parseInt(prefixLength); // 判断是否在同一网段中 for (let i = 0; i < prefixLen; i++) { if (ipv6Binary1[i] !== ipv6Binary2[i]) { return false; } } return true; } function ipv6ToBinary(ipv6Addr) { // 将IPv6地址转换为16进制数组 const hexArray = ipv6Addr.split(':'); // 将每个16进制数字转换为二进制字符串,并拼接起来 let binaryStr = ''; for (let i = 0; i < hexArray.length; i++) { const hexStr = hexArray[i]; const binStr = parseInt(hexStr, 16).toString(2).padStart(16, '0'); binaryStr += binStr; } // 返回二进制字符串的数组 return binaryStr.split(''); } ``` 使用示例: ```javascript const ipv6Addr1 = '2001:db8:1234:5678::1'; const ipv6Addr2 = '2001:db8:1234:5678::2'; const prefixLength = '64'; const inSubnet = ipv6InSubnet(ipv6Addr1, ipv6Addr2, prefixLength); console.log(inSubnet); ``` 输出: ``` true ``` 上述代码中,`ipv6ToBinary`函数将IPv6地址转换为二进制格式,`ipv6InSubnet`函数判断两个IPv6地址是否在同一网段中,且子网掩码位数为`prefixLength`。在这个示例中,我们将子网掩码长度设置为64位,即前64位相同的IPv6地址属于同一网段

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值