精华内容
下载资源
问答
  • 判断是否在同一网络
    千次阅读
    2019-07-03 00:50:58

    IP地址分为两部分,网络部分和主机部分,子网掩码就是用来给你指明哪些是网络部分,哪些是主机部分,如果网络部分相同,那主机就在同一网络里。

    一个IPv4地址,由32位二进制数构成,为方便记忆,每8个一组转化十进制,就是我们常见的ip地址。
    子网掩码就是说在这个32位的ip地址中,用前面多少位代表子网标识,剩下的作为主机表示。子网表示用1表示。比如常见的255.255.255.0其实就是下面的二进制:
    1111 1111.1111 1111.1111 1111.0000 0000

    判断是否在同一个子网,只要看前面的网络标识是否一致就可以了。
    所以,给你一组IP地址,只要用它跟上面的一串二进制掩码做AND运算(考虑下and运算的规则:跟1做AND不变,跟0做AND为0)得到的结果,即为纯网络标识。网络标识相同,即为同一子网。

    例子如下:
    比如下面的两个IP地址:
    A:219.218.44.123
    B:219.218.45.34
    在子网掩码M1:255.255.254.0下为同一子网,而在M2:255.255.255.0下为不同子网。

    分析:
    A: 11011011-11011010-00101100-01111011
    B: 11011011-11011010-00101101-00100010
    M1: 11111111-11111111-11111110-00000000(254)
    M2: 11111111-11111111-11111111-00000000(255)

    通过做and运算,可以看出来
    A&M1: 11011011-11011010-00101100-00000000
    B&M1: 11011011-11011010-00101100-00000000

    A&M2: 11011011-11011010-00101100-00000000
    B&M2: 11011011-11011010-00101101-00000000

    假设还有如下IP
    C:219.218.45.200
    可以得出在子网M2:255.255.255.0下跟B同子网,而在子网M3:255.255.255.128下为不同子网。

    更多相关内容
  • 内容索引:C#源码,网络相关,IP C#小程序,实现判断计算两个IP地址是否同一个子网(掩码)内,程序是用VS2005下开发的,编译正常通过,不过有时候运行不太稳定,会抛出一个“异常”错误,有兴趣研究的朋友可以...
  • 如何判断两个地址是否在同一网段

    千次阅读 2020-07-21 11:16:56
    讲之前,先让大家判断一,有如下IP地址 A:192.168.1.1/24 B:192.168.1.2/24 C:192.168.1.2/25 D:192.168.2.1/24 显然A地址和B在同一网段,A和D不在同一网段,

    在讲之前,先让大家判断一下,有如下IP地址
    A:192.168.1.1/24
    B:192.168.1.2/24
    C:192.168.1.2/25
    D:192.168.2.1/24
    显然A地址和B在同一网段,A和D不在同一网段,那么A C呢,我们来做个实验

    AR1的g0/0/0:192.168.1.1/24
    AR2的g0/0/0:192.168.1.2/25
    AR1:
    AR1的配置
    AR2:
    AR2的配置
    测试连通性:
    在这里插入图片描述
    所以A和C在同一网段,如果不通过实验如何判断呢?

    -----------------------------分界线---------------------------------------

    有A、B两地址,掩码分别为x,y,分两步判断
    1、算A和B是否在同一网段时,分别都用A的掩码算,如果得到的两个网络地址一样,则说明A和B在同一网段(可以理解为A到B方向)
    2、算B和A是否在同一网段时,分别都用B的掩码算,如果的到的两个网络地址一致,说明B和A在同一网段(可以理解为B到A方向)
    两者同时满足,才能保持连通性

    展开全文
  • 1. IP&MASK 查看两台设备的ip4地址和...MASK,若二者相同,则在同一局域网内,否则不在同一局域网。 192.168.0.101 & 255.255.255.0 = 192.168.0.0 192.168.0.105 & 255.255.255.0 = 192.168.0.0 二者...

    1. IP&MASK

    查看两台设备的ip4地址子网掩码
    若子网掩码不一样,则不在同一局域网内
    若一样,分别计算IP&MASK,若二者相同,则在同一局域网内,否则不在同一局域网。
    在这里插入图片描述
    192.168.0.101 & 255.255.255.0 = 192.168.0.0
    在这里插入图片描述
    192.168.0.105 & 255.255.255.0 = 192.168.0.0
    二者结果相同,故在同一局域网内。

    根据TTL

    TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段。
    如果二者在同一设备内,则通过的网段数为0,TTL不会减少。

    1. 首先查看TTL的默认值
      在这里插入图片描述
      通过检查与自己的连接情况,我们得知默认的TTL值为64
    2. 检查与另外一个设备的连接情况
      在这里插入图片描述
      可以看到,TTL仍然是64,也就是说二者的连接没有经过其他网段,故二者在同一局域网内。

    traceroute命令(linux下)

    traceroute IP_B (用tcp测试) 
    或
    traceroute​ -I IP_B (用icmp测试)
    

    linux上的traceroute命令可以跟踪一个包从A到B中间所经过的所有路由ip​。
    如果是直达,说明AB在同一网内;如果有大于一行的返回结果,说明有转发,AB不在同一局域网内。

    参考

    如何判断两台设备在同一局域网内

    展开全文
  • 描述:子网掩码是用来判断任意两台计算机的IP地址是否属于同一网络的根据。最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的...

    描述:

    子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。

    最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。

    请看以下示例:

    运算演示之一:

    IP地址:192.168.0.1

    子网掩码:255.255.255.0

    AND运算

    转化为二进制进行运算:

    IP地址:11010000.10101000.00000000.00000001  子网掩码:11111111.11111111.11111111.00000000  AND运算:11010000.10101000.00000000.00000000  转化为十进制后为: 192.168.0.0

    运算演示之二: IP地址:192.168.0.254  子网掩码:255.255.255.0  AND运算

    转化为二进制进行运算: IP地址:11010000.10101000.00000000.11111110  子网掩码:11111111.11111111.11111111.00000000  AND运算:11010000.10101000.00000000.00000000  转化为十进制后为:192.168.0.0

    通过以上对两台计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0,所以这二台计算机可视为是同一子网络。

    接口说明

    原型:

    intIsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask);

    输入参数:

    char *pcIP1:计算机1的IP地址,格式:“192.168.0.254”

    char *pcIP2:计算机2的IP地址,格式:“192.168.0.1”

    char *pcSubNetworkMask:子网掩码,格式:“255.255.255.0”

    返回值:

    0:IP1与IP2不属于同一子网络。

    1:IP1与IP2属于同一子网络。 代码:

    #include "OJ.h"

    #include

    using namespace std;

    /*

    功能: 判断两台计算机IP地址是同一子网络。

    原型:

    int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask);

    输入参数:

    char * pcIP1: 计算机1的IP地址,格式:“192.168.0.254”;

    char * pcIP2: 计算机2的IP地址,格式:“192.168.0.1”;

    char * pcSubNetworkMask: 子网掩码,格式:“255.255.255.0”;

    返回值:

    0:IP1与IP2不属于同一子网络;

    1:IP1与IP2属于同一子网络;

    */

    int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask)

    {

    /*在这里实现功能*/

    if(!pcIp1||!pcIp2||!pcSubNetworkMask)

    return 0;

    int ip1[4]={0};

    int ip2[4]={0};

    int ip3[4]={0};

    sscanf_s(pcIp1,"%d.%d.%d.%d",&ip1[0],&ip1[1],&ip1[2],&ip1[3]);

    sscanf_s(pcIp2,"%d.%d.%d.%d",&ip2[0],&ip2[1],&ip2[2],&ip2[3]);

    sscanf_s(pcSubNetworkMask,"%d.%d.%d.%d",&ip3[0],&ip3[1],&ip3[2],&ip3[3]);

    for(int i=0;i<4;i++)

    {

    if(ip1[i]<0||ip1[i]>255||ip2[i]<0||ip2[i]>255||ip3[i]<0||ip3[i]>255)

    return 0;

    }

    return (ip1[0]&ip3[0])==(ip2[0]&ip3[0]) && (ip1[1]&ip3[1])==(ip2[1]&ip3[1]) && (ip1[2]&ip3[2])==(ip2[2]&ip3[2]) && (ip1[3]&ip3[3])==(ip2[3]&ip3[3]);

    }

    展开全文
  • 用c#实现的判断两个ip地址是否属于同一网段,用于网络传输判断
  • 判断两个IP是否属于同一子网

    千次阅读 2021-11-22 21:07:43
    子网掩码是用来判断任意两台计算机的IP地址是否属于同一网络的根据。 子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”。利用子网掩码可以判断两台主机是否同一子网中...
  • 判断两个IP地址是否在同一个网段,将它们的IP地址分别与子网掩码做与运算,得到的结果为网络号,具体实现如下,需要的朋友可以参考下
  • 如何判断IP地址是否同一网段?

    千次阅读 2022-04-06 21:36:31
    IP:相当于不同计算机的电话号码(主要在网络层。第三层) MAC:相当于不同计算机的身份证号(主要数据链路层。第二层) DNS:从域名到IP地址的解析 子网掩码:将某个IP地址划分为网络地址和主机地址 网关...
  • 让ip地址和子网掩码进行与操作,如果最后得到的结果相同代表是同一局域网 如: let ip1 = '172.18.2.200'; let zw1 = '255.255.255.0'; ---> 172&255 , 18&255 , 2&255 , 200&0, let ip2 = '172...
  • 前置知识: 静态IP:手动配置的固定IP 动态IP:通过dhcp协议自动获取IP 浮动IP和虚拟IP:都叫VIP,一般是用两台主机...结论:不能单靠IP判断是否在同一网段,这里虚拟网段。IP类似是是否在同一网段无直接关系。 ...
  • 判断IP和网关或者两个IP地址是否在同一个网段,将它们的IP地址分别与子网掩码做与运算,得到的结果为网络号,如果网络号相同,就在同一子网,否则,不在同一子网。 java代码: import java.util.regex.Pattern; ...
  • 2. 如何区分两个IP是否在同一网段? 例1: IP地址1:192.168.1.1 子网掩码:255.255.255.0 IP地址2:192.168.1.2 子网掩码:255.255.255.0 很明显两个IP在同一网段中。 例2: IP地址1:192.168.1.1 子网掩码:255....
  • 我们可以直接的判断,他们是同属于一个网段的ip地址。 2、掩码不一致: ip地址:192.168.1.1 子网掩码:255.255.255.0 ip地址:192.168.1.2 子网掩码:255.255.0.0 详细计算: (1):将ip地址192.168.1.1转换为二进制 ...
  • 有时候需要判断某个IP是否在某个范围内,对于有划分子网的网络,一眼是很难判断的,需要计算子网起止与结束地址,对于学过CCNA知识的未必会算的清楚。看代码: /** * 判断IP是否在某个网络内 * 运维生存时间 ...
  • 功能: 判断两台计算机IP地址是同一网络。原型:int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask);输入参数:char * pcIP1: 计算机1的IP地址,格式:“192.168.0.254”;char * pcIP2: ...
  • 子网掩码是一个32位地址,子网掩码的作用是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是局域网上,还是远程网上。一般的IP地址设置如下 而怎么求网络标识和主机标识呢?网络标识的求法...
  • 判断ip地址是否在同一网段

    万次阅读 多人点赞 2019-05-26 20:11:23
    怎么判断IP地址的是否在同一网段。 相信好多人都认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我想把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255...
  • 检查虚拟机和本机网络是否在同一网段 例一 Ip地址:192.168.1.1 子网掩码:255.255.255.0 (and运算) 11000000 10101000 00000001 00000001 11111111 11111111 11111111 00000000 11000000 10101000 00000001 ...
  • 判断是不是在同一网段,你会了吧,下面,我们来点实际的。 一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适? 子网掩码不说了,前面算出结果来了11111111.11111111.11111100.00000000,也就是...
  • 子网掩码计算方法子网掩码是用来判断任意两台计算机的IP地址是否属于同一网络的根据。最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一...
  • 例子: board IP  192.168.1.230 110010010 101101000 00000001 1000110000 mask 255.255.255.0 11111111 11111111 11111111 00000000 ...如果boardInterflag = ubuntuInterflag 则在同一网段。  
  • 微信小程序判断网络是否连接

    千次阅读 2021-07-20 17:13:17
    onLoad:function(options){ ... //进入这块 说明是有网络 做 有网络的事 }).catch(res => { setTimeout(() => { wx.showToast({ title: '请检查您的网络连接', icon: 'none', duration: 3000.
  • 1.4 判断两个IP是否属于同一子网

    千次阅读 2020-03-25 21:37:24
    子网掩码是用来判断任意两台计算机的IP地址是否属于同一网络的根据。 子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”。利用子网掩码可以判断两台主机是否同一子网中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 198,948
精华内容 79,579
热门标签
关键字:

判断是否在同一网络