精华内容
下载资源
问答
  • 用c#实现的判断两个ip地址是否属于同一网段,用于网络传输判断
  • 要先判断是否在同一子网内,将目的主机IP地址与源主机的子网掩码进行 与 运算,得到网络地址,再将源主机IP地址与源主机的子网掩码做 与 运算,得到另一个网络地址,最后,将两...
  • 子网掩码是一个32位地址,子网掩码的作用是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是局域网上,还是远程网上。一般的IP地址设置如下 而怎么求网络标识和主机标识呢?网络标识的求法...

    子网掩码是一个32位地址,子网掩码的作用是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。一般的IP地址设置如下

    • 而怎么求网络标识和主机标识呢?网络标识的求法如下:将子网掩码的二进制与IP地址的二进制相“与”。具体如下

    • 主机标识的求法:将子网掩码的二进制值取反后,再与IP地址进行与(AND)运算,具体如下:

    • 要判断两个IP地址是不是在同一个网段,就是比较网络标识(网络地址),如果网络标识相同,就在同一子网,否则,不在同一子网。如下:

     

     

    展开全文
  • 例子: board IP  192.168.1.230 110010010 101101000 00000001 1000110000 mask 255.255.255.0 11111111 11111111 11111111 00000000 ...如果boardInterflag = ubuntuInterflag 则在同一网段。  

    例子:

    board
    IP 
    192.168.1.230
    110010010 101101000 00000001 1000110000
    mask
    255.255.255.0
    11111111  11111111   11111111 00000000
    boardInterflag  IP & mask 
    110010010  101101000 00000001 00000000

    ubuntu
    IP
    192.168.0.124
    110010010 101101000 00000000 100100100
    mask
    255.255.255.0
    11111111  11111111  11111111 00000000
    ubuntuInterflag    IP & mask 
    110010010 101101000 00000000 00000000


    如果boardInterflag  = ubuntuInterflag  则在同一网段。
     

    展开全文
  • 相信不只我一个人有过这样的想法:只要IP的前三段相同,就是在同一网段了。真相不是这样的。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。 在IP地址3种主要类型里,各保留了3...

    相信不只我一个人有过这样的想法:只要IP的前三段相同,就是在同一网段了。真相不是这样的。 
    IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。

    在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下: 
    A类地址:10.0.0.0~10.255.255.255 
    B类地址:172.16.0.0~172.31.255.255 
    C类地址:192.168.0.0~192.168.255.255 
    不同类,他们的子网掩码也是不同的。

    那么如何判断两个ip是否在同一网段呢? 
    如:ip:192.168.0.1 子网掩码:255.255.255.0 
    将两者4段对位做与运算(&),得到192.168.0.0(网络标识), 
    相同做法,将另一个ip也做这样的操作,得到另一个网络标识,若两个网络标识是相等的,那么,这两个ip就属于同一个网段的ip,否则不是同网段。

    # 包:py2-ipaddress==3.4.1
    import ipaddress
    a = ipaddress.IPv4Address('192.168.1.2')
    b = ipaddress.IPv4Network('192.168.1.0/24')
    a in b
    True
    # ip地址a,在b网段中
     

     

    展开全文
  • 题目描述 子网掩码是用来判断任意两台计算机的IP地址是否...若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。 示例: I P 地址 192.168.0.1 子网掩码 25

    题目描述

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

    示例:
    I P 地址  192.168.0.1
    子网掩码  255.255.255.0

    转化为二进制进行运算:

    I P 地址 11010000.10101000.00000000.00000001
    子网掩码 11111111.11111111.11111111.00000000

    AND运算
         11000000.10101000.00000000.00000000

    转化为十进制后为:
         192.168.0.0

     

    I P 地址  192.168.0.254
    子网掩码  255.255.255.0


    转化为二进制进行运算:

    I P 地址 11010000.10101000.00000000.11111110
    子网掩码 11111111.11111111.11111111.00000000

    AND运算
         11000000.10101000.00000000.00000000

    转化为十进制后为:
         192.168.0.0

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

    /* 
    * 功能: 判断两台计算机IP地址是同一子网络。 
    * 输入参数:    String Mask: 子网掩码,格式:“255.255.255.0”; 
    *               String ip1: 计算机1的IP地址,格式:“192.168.0.254”;
    *               String ip2: 计算机2的IP地址,格式:“192.168.0.1”;
    *               

    * 返回值:      0:IP1与IP2属于同一子网络;     1:IP地址或子网掩码格式非法;    2:IP1与IP2不属于同一子网络
    */ 
    public int checkNetSegment(String mask, String ip1, String ip2) 
    {     
        /*在这里实现功能*/
        return 0;
    }



    输入描述:

    输入子网掩码、两个ip地址



    输出描述:

    得到计算结果


    输入例子:
    255.255.255.0
    192.168.224.256
    192.168.10.4

    输出例子:
    1
    import java.util.Scanner;
    
    public class Ziwang {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		Scanner sc = new Scanner(System.in);
    		while(sc.hasNextLine()){
    			String mask = sc.nextLine();
    			String ip1 = sc.nextLine();
    			String ip2 = sc.nextLine();
    
    			int res = checkNetSegment(mask, ip1, ip2);
    			System.out.println(res);
    		}
    	}
    
    	public static int checkNetSegment(String mask, String ip1, String ip2) 
    	{   
    
    		String[] maskArr = mask.split("\\.");
    		String[] ip1Arr = ip1.split("\\.");
    		String[] ip2Arr = ip2.split("\\.");
            if(!checkNetSegment(maskArr) || !checkNetSegment(ip1Arr) || !checkNetSegment(ip2Arr)){
    			return 1;
    		}
            boolean flag = false;
    		for(int i=0; i<4; i++){
    			if((Integer.parseInt(maskArr[i]) & Integer.parseInt(ip1Arr[i])) 
                   == (Integer.parseInt(maskArr[i]) & Integer.parseInt(ip2Arr[i]))){
                    flag = true;
                }else{
                    flag = false;
                    break;
                }
    		}
    		if(flag) {
                return 0;
            }else{
                return 2;
            }
    	}
    	public static boolean checkNetSegment(String[] arr1){
    		boolean f=false;
    		for(int i=0;i<arr1.length;i++){
    			if(0<=Integer.valueOf(arr1[i])&&Integer.valueOf(arr1[i])<=255){
    				f=true;
    			}else{
    				f=false;
    				break;
    			}
    		}
    		return f;
    	}
    }
    

    注意有几个问题:
    1、这里判断输入是否合法,我们需要判断每部分是否在0~255之间,而不是判断是否由四部分组成
    2、255.255.192.0 这种字符串用 . 号作为分隔符分割时,不能写split("."),因为在java API中,. 号代表匹配任意字符,而不是匹配. 号,所以应该写转义字符\\.
    3、判断是否是同一子网的条件就是两个IP地址和子网掩码各位与之后,得到的两个字符串相同,则表示在同一子网中。
    展开全文
  • 如何判断两个IP是否在同一网段

    千次阅读 2017-05-09 11:09:53
    大学的时候有上过计算机网络的课程,IP这块也有一些接触,但向来不是很好学的我,对于...接下来我们举例说明,如何去判断A和B两个IP是否在同一网段。  A IP:202.194.128.9  B IP:202.194.128.14  子网
  • 怎样判断两个IP是否在同一局域网?

    千次阅读 2017-09-20 18:49:31
    怎样判断两个IP是否在同一局域网?1.在windows中,开始->cmd 进入Dos,输入ipconfig /all,查看网络配置。2.首先看子网掩码(Subnet Mask),如果两台机器子网掩码不一致,不在一个局域网。3.若子网掩码一致,再看...
  • 判断IP和网关或者两个IP地址是否在同一个网段,将它们的IP地址分别与子网掩码做与运算,得到的结果为网络号,如果网络号相同,就在同一子网,否则,不在同一子网。 java代码: import java.util.regex.Pattern; ...
  • /* //判断任意两台计算机的IP地址是否属于同一子网络 子网掩码是用来判断任意两台计算机的IP...若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。 示例: I P 地址 19...
  • /* //判断任意两台计算机的IP地址是否属于同一子网络 子网掩码是用来判断任意两台计算机的IP...若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。 示例: I P 地址 19
  • 判断两个IP是否属于同一子网题目描述输入描述输出描述代码实现总结 题目描述 ...若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。 示例: IP地址...
  • IP地址分为两部分,网络部分和主机部分,子网掩码就是用来给你指明哪些是网络部分,哪些是主机部分,如果网络部分相同,那主机就在同一网络里。 一个IPv4地址,由32位二进制数构成,为方便记忆,每8个一组转化十进制...
  • 若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。 示例: IP地址 192.168.0.1 子网掩码 255.255.255.0 转化为二进制进行运算: IP地址 11010000.10101000....
  • /// 获取同一子网下另一个ip地址,从子网第一个ip开始算起第n个ip /// public static string GetNewIPAddressByIPAddress(string ipAddress, string subnetMask, int n = 10) { int count = ...
  • 若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。 示例: I P 地址 192.168.0.1 子网掩码 255.255.255.0 转化为二进制进行运算: I P 地址 11010000.10101000.0000
  •  就在同一子网,否则,不在同一子网。 例:假定选择了子网掩码255.255.254.0,把IP地址和子网掩码转换为二进制,分别将上述两个IP地址分别与掩码做与运算,如下所示:  211.95.165.24 11010011 01011111 ...
  • 这是2020年3月25日华为笔试第一题 ...输出结果1表示IP1,IP2在同一子网,并输出IP1的网络号 1 192.168.1.0 192.168.21.156 192.168.45.148 255.255.255.128 0表示IP1,IP2不在同一子网并输出IP1的网...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 286
精华内容 114
关键字:

判断是否在同一网络