IP地址类



  1. /*
    2.2.
    3.3. 2.
    4.4.
    5.5.  3. *Copyright   (c)  2016,烟台大学计算机学院
    6.6.
    7.7.   4.
    8.8.
    9.9.   5. *All rights reserved.
    10.10.
    11.11.  6.
    12.12.
    13.13.   7. *文件名称:test.cpp
    14.14.
    15.15.8.
    16.16.
    17.17. 9. *作者: 武聪
    18.18.
    19.19. 10.
    20.20.
    21.21. 11. *完成日期:2016年5月9 日
    22.22.
    23.23.12.
    24.24.
    25.25.   13. *版本号:v1.0
    26.26.
    27.27.  14. *问题描述:设计一个IP地址类,用于保存IP地址,并实施在IP地址上的一些操作
    28.28.
    29.29.15. *输入描述:
    30.30.
    31.31.16. *程序描述:
    32.32.
    33.33. 17. */
    34.#include <iostream>
    using namespace std;
    class IP
    {
    private:
        union
        {
            struct
            {
                unsigned char seg0;
                unsigned char seg1;
                unsigned char seg2;
                unsigned char seg3;
            };
            unsigned int address;
        };
    public:
        IP(int=0,int=0,int=0,int=0);
        void showIP();
        bool sameSubnet(const IP &ip, const IP &mark);
        char whatKind();
    };
    35.IP::IP(int s0,int s1,int s2,int s3)
    {
        seg3=s0;
        seg2=s1;
        seg1=s2;
        seg0=s3;
    }
    36.void IP::showIP()
    {
        cout<<int(seg3)<<"."<<int(seg2)<<"."<<int(seg1)<<"."<<int(seg0)<<endl;
        return;
    }
    37.bool IP::sameSubnet(const IP &ip, const IP &mark)
    {
        unsigned int i1, i2;
        i1=address&mark.address;
        i2=ip.address&mark.address;
        return (i1==i2);
    }
    38.char IP::whatKind()
    {
        if(seg3<128)
            return 'A';
        else if(seg3<192)
            return 'B';
        else if(seg3<224)
            return 'C';
        else if(seg3<240)
            return 'D';
        else
            return 'E';
    }
    39.int main()
    {
        IP ip1(202,194,116,97), ip2(202,194,119,102), mark(255,255,248,0);
        cout<<"ip1: ";
        ip1.showIP();
        cout<<"ip2: ";
        ip2.showIP();
        if(ip1.sameSubnet(ip2,mark))
            cout<<"两个IP在同一子网"<<endl;
        else
            cout<<"两个IP不在同一子网"<<endl;
        cout<<"ip1属于"<<ip1.whatKind()<<"类网络"<<endl;
        return 0;
    }
    

    运行结果:

    知识点总结:

    布尔型的使用

    学习心得;

    感觉很难

时间: 2024-11-08 21:16:47

IP地址类的相关文章

QT正则表达式---针对IP地址

判断合法IP的QT正则表达式: bool IsIPaddress(QString ip) { QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(//d +)"); int pos = rx2.indexIn(ip); if(pos>-1)    { for(int i=0;i<4;i++)        {            if( rx2.cap(i*2+1).toInt()>=255 )            {  

IP地址的分类——a,b,c 类是怎样划分的

如今的IP网络使用32位地址,以点分十进制表示,如172.16.0.0.地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址. IP地址类型 最初设计互联网络时,为了便于寻址以及层次化构造网络,每一个IP地址包含两个标识码(ID),即网络ID和主机ID.同一个物理网络上的全部主机都使用同一个网络ID,网络上的一个主机(包含网络上工作站,server和路由器等)有一个主机ID与其相应.IP地址依据网络ID的不同分为5种类型,A类地址.B类地址.C类地址.D类地址和E

网络A、B、C类IP地址的区别

学网络之前得先要明白几个概念:(起初我也不怎么知道后来就慢慢会了) 1字节=8位,1位就是1个数字,所以1字节等于8个数字. 2的8次方,和二进制11111111转换为十进制并不一回事. 0-127是128个数字,0-255是256个数字. 所有的ipv4都是32的, xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx. A类是这样表示网络: 网络.结点.结点.结点 B类是这样表示网络: 网络.网络.结点.结点 C类是这样来表示网络: 网络.网络.网络.结点 A类网络地址范围

IP地址的分类——a,b,c 类是如何划分的

现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0.地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址. IP地址类型 最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID.同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应.IP地址根据网络ID的不同分为5种类型,A类地址.B类地址.C类地址.D类地址和E类地址.

A、B、C、D和E类IP地址

IP地址分为A,B,C,D,E五类. 网络号:用于识别主机所在的网络:主机号:用于识别该网络中的主机. 其中A类分配给政府机关使用,B类地址给大中型企业使用,C类地址给个人使用.这三种是主要的. IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同. 其中A类.B类.和C类这三类地址用于TCP/IP节点,其它两类D类和E类被用于特殊用途.A.B.C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第

IP地址分类以及C类IP地址的子网划分

国际规定:把所有的IP地址划分为 A,B , C , D , E A 类地址 : 范围从 0-127 , 0 是保留的并且表示所有 IP 地址, 而 127 也是保留的地址, 并且是用于测试环回用的. 因此 A 类地址的范围其实是从 1-126 之间. 如: 10.0.0.1 ,第一段号码为网络号码,剩下的三段号码为本地计算机的号码.转换为 2 进制来说,一个 A 类 IP 地址由 1 字节的网络地址和 3 字节主机地址组成,网络地址的最高位必须是" 0 " , 地址范围从 0.0.0

Java知多少(103)网络编程之IP地址和InetAddress类

Java语言的优势之一是Java程序能访问网络资源.Java提供一系列的类支持Java程序访问网络资源. TCP/IP协议和IP地址 为了进行网络通信,通信双方必须遵守通信协议.目前最广泛使用的是TCP/IP协议,它是Internet中各方所遵循的公共协议.TCP(Transport Control Protocol)是一种传输控制协议,IP(Internet Protocol)是一种网际协议,TCP/IP代表这两个协议的. TCP/IP分为四个层次: 网络接口层:负责接收和发送物理帧: 网络层

文本过滤之——grep,sort,wc,uniq,tr, 精准过滤IP地址,A类地址,B类地址.... 并排序

文本过滤之IP地址精准过滤 在写之前自己整理了一点自己平时老是搞混的东西,最基础的就不写了,前面的东西不想看得一眼代过,就当借着做IP过滤顺便整理下常用的,看看后面如何精准锁定IP地址吧. 一.正则表达式(PATRERN) 括号() 方括号[] 尖括号<> 大括号{} 的使用 \[\]  匹配指定范围内的任意单个字符 [^] 用于匹配指定对象之外的任意单个字符 ^[] 用于匹配指定对象并且在行首的任意单个字符 \(\) 用作后向引用,也可以用于限定或(\|)的作用域 \1 引用第一个左括号及其

ipv4理论知识2-分类编址、ip分类、网络标识、主机标识、地址类、地址块

分类编址 ipv4的体系结构中有分类编址和无分类编址(后续会介绍到),在分类编址时,ipv4地址分为A.B.C.D.E这5类.每类占用的IP比例和个数如下图: ipv4分类识别 计算机以二进制方式存储ipv4地址,在这种情况下可以和方便的写出一种算法,通过一个连续检查过程来查找出该ip地址的类别.流程图如下: 网络标识和主机标识 对于A.B.C类IP地址,都可以划分为网络标识和主机标识两部分.其中网络标识和主机标识的长度随地址类别的不同变化.网络标识和主机标识其实很好理解就相当于我们使用的电信的