精华内容
下载资源
问答
  • IP是否有效

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

    题目描述
    子网掩码是用来判断任意两台计算机的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,所以这二台计算机可视为是同一子网络。

    思路:使用stringstream数据类型,将数据流转化成我们想要的数据格式。
    比如:stringstream ss;
    string inputstr;
    cin >> inputstr;
    ss << inputstr;
    ss >> int >> char >>int >> char >>int >>char>>int

    /********************************
    Created by Mr. Guo Zhiguo
    Finish time : 2020/7/23
    Location : Suzhou
    
    Function:Judege IP Validity
    ********************************/
    #include<iostream>
    #include<string>
    #include<sstream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    int main()
    {
        int mask1 = 0, mask2 = 0, mask3 = 0, mask4 = 0;
        char ch;
        string inputstr;
        stringstream ss;
        while(cin>>inputstr)
        {
    
            int ip1a = 0, ip1b = 0, ip1c = 0, ip1d = 0;
            int ip2a = 0, ip2b = 0, ip2c = 0, ip2d = 0;
            ss<<inputstr;
            cout << inputstr << endl;
            ss>>mask1>>ch>>mask2>>ch>>mask3>>ch>>mask4;
            ss.clear();
            cin>>inputstr;
            ss<<inputstr;
            ss>>ip1a>>ch>>ip1b>>ch>>ip1c>>ch>>ip1d;
            ss.clear();
            cin>>inputstr;
            ss<<inputstr;
            ss>>ip2a>>ch>>ip2b>>ch>>ip2c>>ch>>ip2d;
            ss.clear();
            if((mask1 > 255 || mask1 < 0) || (mask2 > 255 || mask2 < 0) || (mask3 > 255 || mask3 < 0) || (mask4 > 255 || mask4 < 0)
                || (ip1a > 255 || ip1a < 0) || (ip1b > 255 || ip1b < 0) || (ip1c > 255 || ip1c < 0) || (ip1d > 255 || ip1d < 0)
                || (ip2a > 255 || ip2a < 0) || (ip2b > 255 || ip2b < 0) || (ip2c > 255 || ip2c < 0) || (ip2d > 255 || ip2d < 0))
                cout<<1<<endl;
            else if(((mask1 & ip1a) == (mask1 & ip2a)) && ((mask2 & ip1b) == (mask2 & ip2b)) && ((mask3 & ip1c) == (mask3 & ip2c)) && ((mask4 & ip1d) == (mask4 & ip2d)))
                cout<<0<<endl;
            else
                cout<<2<<endl;
        }
    }
            return 0;
    }
    
    
    展开全文
  • IP地址IP地址的组成和类别IP地址的分类判断IP地址是否在同一网段子网及(有效主机容量 IP地址的组成和类别 IP地址=网络部分+主机部分=32位 网络部分用来确定终端是不是在同一个网段 主机部分用来确定终端的容量...

    IP地址的组成和类别

    IP地址=网络部分+主机部分=32位
    网络部分用来确定终端是不是在同一个网段
    主机部分用来确定终端的容量大小(这个网段可容纳多少台)
    同一个部门主机应该确保其在一个网段
    主机数量应该在你的主机容量的范围内
    一个字节(byte)=8个比特(bit)
    IP地址时32位二进制数,点分四段十进制数表示
    现在用到IP地址版本是IPV4(第四个版本),之后将会过度到IPV6,IPV6可以满足一人一IP。
    子网掩码当中连续的1代表了网络部分,连续的0代表了主机部分。

    IP地址的分类

    IP地址分为5类:A、B、C、D、E
    A、B、C用于商业用途,D类用于组播,E类用于科研
    子网掩码当中连续的1代表网络部分,连续的0代表主机部分。

    类别 地址段 二进制数表示地址段 默认子网掩码
    A 1-126 00000001 - 01111111 255.0.0.0/8
    B 128 - 191 10000000 - 10111111 255.255.0.0/16
    C 192 - 223 11000000 - 11011111 255.255.255.0/24
    D 224 - 239 11100000 - 11101111
    E 240 - 254 11110000 - 11111110
    • 0指的是所有网段,255指的是广播
      IP地址分为私有地址和公有地址
      私有地址:
      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地址换算成二进制数
    第二步:把子网掩码换算成二进制数,并且与IP地址对齐
    第三步:把IP地址与子网掩码做“与”*(乘法)运算
    第四步:用“有0出0,全1出1”的口诀计算出结果即为网络位/网络号
    第五步:第二个IP网络位/网络号计算方法同上
    第六步:比较两网络位/网络号是否相同。如果相同即在同一个网段。两两之间的数据通信即用交换机。如果不相同即不在一个网段,两两之间数据通信用路由器。
    在这里插入图片描述

    子网及(有效)主机容量

    子网就是将主机地址的几位用来做网络地址来将网路划分位若干子网,便于管理还能减少IP浪费。
    子网数=2n(n为网络位借主机位的位数)
    主机容量/块大小=2m(m为主机个数)
    有效主机容量=2m-2(m为主机的个数)(网络标识位和广播地址是不能用于主机的IP地址的编写的)
    (默认)C类有效主机容量=28-2=254台
    (默认)B类有效主机容量=216-2=65534台
    (默认)A类有效主机容量=224-2=16777214台

    展开全文
  • IP地址1、IP地址的组成和类别2、IP地址的分类3、判断IP地址是否在同一网段4、子网及(有效主机容量 1、IP地址的组成和类别 1、IP地址的组成和类别 IP地址=网络部分+主机部分=32位 网络部分用来确定终端是不是在同...

    1、IP地址的组成和类别

    1、IP地址的组成和类别
    IP地址=网络部分+主机部分=32位
    网络部分用来确定终端是不是在同一个网段
    主机部分用来确定终端的容量大小(这个网段可容纳多少台)
    同一个部门主机应该确保其在一个网段
    主机数量应该在你的主机容量的范围内

    一个字节(byte)=8个比特(bit)
    IP地址时32位二进制数,电分四段十进制数表示
    现在用到IP地址版本是IPV4(第四个版本),之后将会过度到IPV6,IPV6可以满足一人一IP。
    子网掩码当中连续的1代表了网络部分,连续的0代表了主机部分。

    2、IP地址的分类

    IP地址分为5类:A、B、C、D、E
    A、B、C用于商业用途,D类用于组播,E类用于科研
    子网掩码当中连续的1代表网络部分,连续的0代表主机部分。

    在这里插入图片描述

    0.0.0.0——指的是所有网段,255.255.255.255——指的是全网广播
    IP地址分为私有地址和公有地址
    私有地址:
    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
    私有地址只会出现在局域网中,且可以重复使用。因为每个局域网都是独立的分支,如果没有在互联网中出现的话,不会影响到别的局域网通信。
    公有地址出现在互联网中,如果地址重复,将不能正常转发,公有地址必须唯一。

    3、判断IP地址是否在同一网段

    判断是否在同一个网段:
    相同网段间数据通信用交换机,不同网段间数据通信路由器。
    计算步骤:
    第一步:把IP地址换算成二进制数
    第二步:把子网掩码换算成二进制数,并且与IP地址对齐
    第三步:把IP地址与子网掩码做“与”*(乘法)运算
    第四步:用“有0出0,全1出1”的口诀计算出结果即为网络位/网络号
    第五步:第二个IP网络位/网络号计算方法同上
    第六步:比较两网络位/网络号是否相同。如果相同即在同一个网段。两两之间的数据通信即用交换机。如果不相同即不在一个网段,两两之间数据通信用路由器。

    4、子网及(有效)主机容量

    子网就是将主机地址的几位用来做网络地址来将网路划分位若干子网,便于管理还能减少IP浪费。
    子网数=2n(n为网络位借主机位的位数)
    主机容量/块大小=2m(m为主机个数)
    有效主机容量=2m-2(m为主机的个数)(网络标识位和广播地址是不能用于主机的IP地址的编写的)

    (默认)C类有效主机容量=28-2=254台
    (默认)B类有效主机容量=216-2=65534台
    (默认)A类有效主机容量=224-2=16777214台

    展开全文
  • 子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网...

    简介

    子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

    子网掩码是一个32位的2进制数, 其对应网络地址的所有位都置为1,对应于主机地址的所有位都置为0。所以,子网掩码是以连续的1+连续的0组成的,通过判断子网掩码中是否存在"01",可以判断子网掩码是否有效。

    代码

    #include <string>
    #include <bitset>
    #include <arpa/inet.h>
    
    bool IsValidMask(std::string mask) {
        int iRet = -1;
        
        // 将IP地址由“点分十进制”转换成 “二进制整数”
        struct in_addr s;
        iRet = inet_pton(AF_INET, mask.c_str(), &s); 
        
        // 转换成功返回1,说明是有效的IP地址
         if (iRet == 1) {
             // 从网络字节顺序转换为主机字节顺序
             unsigned int addr = ntohl(s.s_addr);
             
             // 转换为二进制字符串
             std::bitset<32> b((int)addr);
            std::string strMask = b.to_string();
            
            // 查找二进制字符串中的"01",如果不存在,说明是有效的子网掩码
            return (strMask.find("01") == std::string::npos);
        }
        
        return false;
    }

    测试程序

    #include <iostream>
    
    int main()
    {
        while(true) {
        // 输入子网掩码字符串
        std::cout << "Input Mask: " << std::endl;
        std::string strMask;
        std::cin >> strMask;
        
        // 判断字符串是不是有效的子网掩码
        if(IsValidMask(strMask)) {
                std::cout << "Valid!  " << std::endl << std::endl;
            } else {
                std::cout << "Invalid!" << std::endl << std::endl;
            }
        }
        return 0;
    }
    展开全文
  • 利用nmap搜集主机信息

    千次阅读 2018-07-22 15:43:51
    nmap是一个非常有用的信息收集工具,利用它可以查看到其他主机的MAC,IP信息,还可以查看主机哪些端口是打开的...之后我们判断了自己在那个网段下了,我们就搜索一下C类地址IP就好,A,B类搜集太慢。 输完后,...
  • c# 判断网络是否连接

    2011-09-08 16:15:00
    在网上查到有几种方式检查网络是否连接,测试了一下,第一种方式受到ping时延的影响,在某些不支持ping的... // 使用 ping 命令来判断 ,txtIP 文本框输入一个有效的远程主机 ip System.Diagnostics.Process proI...
  • 华为网络技术大赛模拟题答案详解

    万次阅读 多人点赞 2016-05-09 17:20:00
    (1)VLSM的作用是:在有类的IP地址基础上,从主机位部分划分出相应的位数做为网络位。但是在路由器上部署时,需要路由协议的支持。 【解释】对,VLSM=Variable Length Subnet Mask,可变长子网掩码 (2)有效的沟通是...
  • 子网掩码计算器.exe

    2020-12-09 20:10:52
    用户只要在该ip子网掩码计算器中输入点分十进制的IP地址,可以立刻判断地址类,并显示其子网位、主机位、符合条件的子网数量、每个子网所包含的有效主机数量、所属子网地址、子网掩码、子网的广播地址以及当前子网...
  • 用户只要在该ip子网掩码计算器中输入点分十进制的IP地址,可以立刻判断地址类,并显示其子网位、主机位、符合条件的子网数量、每个子网所包含的有效主机数量、所属子网地址、子网掩码、子网的广播地址以及当前子网...
  •  子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。例如,有两台主机主机一的IP地址为222.21.160.6,子网掩码为255.255.255....
  • 能够计算出下列参数:子网数及有效子网、每个子网的主机数、每个子网IP范围及广播地址。 应有相应的帮助提示及良好的结果输出组织,易于用户使用和查看结果。 2. 课程设计报告内容 给出程序的流程图; 给出程序...
  • 很容易看出IP地址为10.32.20.71的主机在极短的时间内向大量的不同主机发出了访问请求,并且目的端口都是445。 4.找出染毒主机。从抓包的情况看,主机10.32.20.71值得怀疑。首先我们看一下目的IP地址,这些地址我们...
  • c# socket

    2014-03-24 10:15:00
    使用DNS.GetHostAddresses,许多意想不到的域名都可以取得...但是读出的数据长度为0,并且这种情况下读写超时失效,一直不停的读下去,这样给判断邮件主机、端口号是否有效增加了麻烦。使用读出的长度为0的次数判断...
  • 网络信息扫描实验

    2013-05-11 22:05:21
    这种扫描方法利用了ICMP协议的功能,如果向目标主机发送一个协议项存在错误的IP数据包,则根据反馈的ICMP错误报文,判断目标主机使用的服务。 6)间接扫描 入侵者间接利用第三方主机进行扫描,以隐藏真正入侵者的...
  • C#检查网络是否连接的方法

    千次阅读 2018-02-28 20:29:57
    C# 检查网络是否连接 在网上查到... 调用 cmd 中的 ping 命令,分析输出信息来确定网络是否连接 // 使用 ping 命令来判断 ,txtIP 文本框输入一个有效的远程主机 ip System.Diagnostics.Process proIP...
  • Ping的作用是测试主机/交换机到某一个IP地址的网络是否通畅。Ping基于ICMP协议实现的。通过从源端向目的端发送ICMP回显请求(Echo Request)报文后,根据是否收到目的端的ICMP回显应答(Echo Reply)报文来判断目的端...
  • Ping的作用是测试主机/交换机到某一个IP地址的网络是否通畅。Ping基于ICMP协议实现的。通过从源端向目的端发送ICMP回显请求(Echo Request)报文后,根据是否收到目的端的ICMP回显应答(Echo Reply)报文来判断目的端...
  • (3)能够计算出下列参数:子网数及有效子网、每个子网的主机数、每个子网IP范围及广播地址。 (4)应有相应的帮助提示及良好的结果输出组织,易于用户使用和查看结果。 2、课程设计报告内容 (1) 给出程序的流程图;...
  • 16华为网络技术大赛模拟题答案详解

    千次阅读 2017-04-14 20:13:11
    (1)VLSM的作用是:在有类的IP地址基础上,从主机位部分划分出相应的位数做为网络位。但是在路由器上部署时,需要路由协议的支持。 【解释】对,VLSM=Variable Length Subnet Mask,可变长子网掩码 (2)有效的...
  • 常用的DOS命令

    2012-12-18 17:23:00
    它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等...
  • 华为ICT大赛2016模拟题

    千次阅读 2018-03-15 16:16:26
    一、判断题(1)VLSM的作用是:在有类的IP地址基础上,从主机位部分划分出相应的位数做为网络位。但是在路由器上部署时,需要路由协议的支持。【解释】对,VLSM=Variable Length Subnet Mask,可变长子网掩码(2)有效的...
  •  除了减少所需的 IPv4 地址外,由于专用网络之外的所有主机都通过一个共享的 IP 地址来监控通讯,因此 NAT 还为专用网络提供了一个隐匿层。NAT 与防火墙或代理服务器不同,但它确实有利于安全。 跨VLAN/单网段/多...
  • apache日志格式参数说明%h –客户端的ip地址主机名%l –The 这是由客户端 identd 判断的RFC 1413身份,输出中的符号 “-” 表示此处信息无效。%u –由HTTP认证系统得到的访问该网页的客户名。有认证时才有效,输出...
  • //判断IP是否为空 if(m_cIP.IsBlank()) { MessageBox("请输入主机IP地址"); return; } if(m_cIP.GetAddress(f1,f2,f3,f4))//判断输入IP是否有误 { MessageBox("请输入有效的IP地址"); return;...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux...
  •  IP地址及子网掩码计算  可分配的网络数=2网络号位数  网络中最大的主机数=2主机号位数-2例:10位主机号=210-2=1022  IP和网络号位数取子网掩码  例:IP:176.68.160.12网络位数:22  子网:ip->二进制->网络号全1...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

判断ip主机有效地址