判断两个IP是否处于同一子网(网段)

大学的时候有上过计算机网络的课程,IP这块也有一些接触,但向来不是很好学的我,对于一些问题似是而非的态度,感觉知道,但具体的又说不上,今天就花了点时间彻底把这个问题搞清楚,写在这也算是做个记录吧!接下来我们举例说明,如何去判断A和B两个IP是否在同一网段。

A IP:202.194.128.9

B IP:202.194.128.14

子网掩码:255.255.255.0

1.把A和B的地址转换为二进制的

A:1100 1010.1100 0010.1000 0000.0000 1001

B:1100 1010.1100 0010.1000 0000.0000 1101

掩码 :1111 1111.1111 1111. 1111 1111 .0000 0000

2、要判断两个IP是否在同一网段,主要是看看他们的网络标识是否一样,其实一个IP的网络标识也就是他的IP和子网掩码AND之后的结——比如上面两个AND以后的结果如下:

A:11001010.1100 0010.1000 0000 .0000 0000 转化为十进制:202.194.128.0

B:1100 1010.1100 0010.1000 0000.0000 0000 转化为十进制:202.194.128.0

这说明两个IP的网络标识相同,也就是说他们在同一子网。

3、有的时候我们还想知道,两个IP各自的主机标识,先将子网掩码取反,再和IP做AND.

A:1100 1010.1100 0010.1000 0000.0000 1001

B:1100 1010.1100 0010.1000 0000.0000 1101

掩码取反:0000 0000.0000 0000.0000 0000.1111 1111

AND 之后结果:

A:0000 0000.0000 0000.0000 0000.0000 1001 转化为十进制:9

B:0000 0000.0000 0000.0000 0000.0000 1101 转化为十进制:14

也就是说A和B的主机标识为9和14

原文地址:http://www.cnblogs.com/liuguokun/p/6087049.html

时间: 2024-08-05 03:28:10

判断两个IP是否处于同一子网(网段)的相关文章

五层结构 判断两个IP是否处于同一子网?

互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 应用层(各种协议)                                              端口 HTTP-----超文本传输协议----- 80 FTP  -----文件传输协议    ----- 21DNS  -----域名解析协议    ----- 53Telnet---远程控制协议      ----- 23SMTP ----网络管理协议    ----- 25 传输层 基于端口进行通讯补充:端口

华为OJ——判断两个IP是否属于同一子网

题目描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据. 子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为"1"和主机号部分全为"0".利用子网掩码可以判断两台主机是否中同一子网中.若两台主机的IP地址分别与它们的子网掩码相"与"后的结果相同,则说明这两台主机在同一子网中. 示例: I P 地址  192.168.0.1 子网掩码  255.255.255.0 转化为二进制进行运算: I P 地址 11010

判断两个IP是否属于同一子网

描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据.子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”.利用子网掩码可以判断两台主机是否中同一子网中.若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中. 示例:I P 地址  192.168.0.1子网掩码  255.255.255.0 转化为二进制进行运算: I P 地址 11010000.10101000.00000000.00000001

C实现判断两个IP是否在同一个子网

在进行网络程序的时候避免不了对给定IP是否跨子网段进行判断.相关原理倒是简单, 贴出相关代码: 1 #include <stdio.h> 2 #include <math.h> 3 #include <string.h> 4 #include <stdlib.h> 5 #include <unistd.h> 6   7 #define ALL_BIT 32 /* ip address have 32 bits */ 8   9 /* 10 **

判断两个IP地址是不是属于同一子网的方法

一个IP地址有三种写法: 第一种,单个IP,如192.168.55.28 第二种,IP/子网掩码,如192.168.55.28/255.255.255.0 第三种,IP/子网掩码长度,如192.168.55.28/24 对于第一种单个IP的形式,其实际相当于192.168.55.28/32或192.168.55.28/255.255.255.255. 下面说明如何判断两个IP是否属于同一子网. 这里定义两个方法,第一种方法通过IP和子网掩码计算出其网络号,第二种方法通过IP和子网掩码长度计算出其

如何判断两个IP地址是不是处于同一网段?

要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果-->网络号,如果网络号相同,就在同一子网,否则,不在同一子网. 例:假定选择了子网掩码255.255.254.0,把IP地址和子网掩码转换为二进制,分别将上述两个IP地址分别与掩码做与运算,如下所示: 211.95.165.24 11010011 01011111 10100101 00011000 255.255.254.0 11111111 11111111 111111110 00000000 与的

如何判断两个IP是不是在同一个网段内

和子网掩码转2进制相与 后,得到网络地址,网络地址一样则在一个子网. 子网掩码是一个32位地址,子网掩码的作用是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上.一般的IP地址设置如下: 而怎么求网络标识和主机标识呢?网络标识的求法如下:将子网掩码的二进制与IP地址的二进制相"与".具体如下 主机标识的求法:将子网掩码的二进制值取反后,再与IP地址进行与(AND)运算,具体如下: 要判断两个IP地址是不是在同一个网段,就是比较网络标识(网络

【华为OJ】【075-判断两个IP是否属于同一子网】

[华为OJ][算法总篇章] [华为OJ][075-判断两个IP是否属于同一子网] [工程下载] 题目描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据. 子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为"1"和主机号部分全为"0".利用子网掩码可以判断 两台主机是否中同一子网中.若两台主机的IP地址分别与它们的子网掩码相"与"后的结果相同,则说明这两台主机在同一子网中. 示例: IP地址 192.168.0.

如何判断两个IP是否在同一网段

下来举例说明,如何去判断A和B两个IP是否在同一网段. A IP:202.194.128.9 B IP:202.194.128.14 子网掩码:255.255.255.0 1.把A和B的地址转换为二进制的 A:1100 1010.1100 0010.1000 0000.0000 1001 B:1100 1010.1100 0010.1000 0000.0000 1101 掩码 :1111 1111.1111 1111. 1111 1111 .0000 0000 2.要判断两个IP是否在同一网段,