IP地址是一个网卡在网络世界里的通讯地址,相当于我们家里的门牌号码。这样类比的话,很显然ip地址是唯一的。在windows系统中,我们可以使用 ipconfig 命令查看本机的ip地址相关信息:

图中 10.17.191.222就是本机ip地址,地址的大小为32bit,这个地址被分为四个部分,也就是每个部分8个bit。按照这种方式给网卡分配地址的话,那很快地址就不够用了,细分的话这个地址其实是IPv4地址。因此就出现了IPv6地址,这个有128位,由16进制表示。

32位的IP地址在使用的时候被分为5类,A、B、C类是我们经常用到的。

  其中网络号的含义可以这样类比,我是A小区的六栋1001号,你是B小区六栋1001号,A、B小区就代表不同的网络号。A、B、C三类地址所包含的主机数是有限的,C类主机数量非常少,使用的话确实挺尴尬的。上面的ip是A类的私有IP地址,其实数据中心、办公室、家里、学校的ip地址,一般都是私有ip地址段。因为这些地址允许组织内部的IT人员自己管理、自己分配,而且是可以重复的,也就是说不同的学校IP地址段可以相同。

这就像不同小区,你的楼栋叫6号 我的也可以叫6栋,不会出现问题。如果我们走出了小区,就要使用公有IP地址,就像崇文路2号这是政府命名的,不能相同。公有ip地址有组织统一分配,需要花钱买。比如开发一个网站给全世界人访问,就需要公有ip地址。192.168.0.*是最常用的私有ip地址,比如家里的wifi 对应会有一个IP地址。192.168.0就是网络号,后面是主机号,一般我们的主机数量不会超过2^8也就是256个。当我们的手机连上wifi,wifi的路由器的地址就是192.168.0.1,192.168.0.255就是广播地址。一旦发送的目的ip地址是这个,那么192.168.0网络里面所有的机器都能收到。

  我们之前学习网络的时候,应该都做过这样一道题目:对于 16.158.165.91/22 这个 CIDR,求一下这个网络的第一个地址、子网掩码和广播地址。CIDR(无类别域间路由选择)将是一个ip地址分为网络号和主机号,22的意思是网络号占22位。22不是8的倍数,将165转换成二进制为10100101。这里二进制的前6位网络号,后面都是主机号了。 所以第一个ip地址为16.158.<101001><00>.1, 即 16.158.164.1。子网掩码将ip地址划分为网络地址和主机地址,网络地址用1表示,主机地址用0表示。所以上面的ip地址的子网掩码为255.255.<11111100>.0即255.255.252.0。广播地址的主机号都用1填充,所以广播地址为16.158.<101001><11>.255即16.158.167.255。

  对于网络部分的知识我们应该结合实际的使用来理解,基础的概念很多,不然很容易记了就忘。

参考资料:《趣谈网络协议》刘松

     《计算机网络:自顶向下方法》原书第六版 陈鸣译

你应该知道的ip地址相关知识的更多相关文章

  1. IP地址相关知识

    IP地址基本概念                                                                                            ...

  2. IP地址基础知识

    IP地址基础知识 网络号:用于识别主机所在的网络:主机号:用于识别该网络中的主机. 一 OSI/RM模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 二 TCP/IP模型 数据链路层( ...

  3. IP 地址基本知识

    ip地址被分成了5类:A类,B类,C类,D类,E类 私有地址 只能在局域网内使用,不能在internet上使用的ip地址称为私有ip地址,私有ip地址有: 10.0.0.0-10.255.255.25 ...

  4. IP地址相关运算(如VLSM,超网汇总)

    1.根据IP地址+子网掩码算出IP地址所在的网段(网络号) 例子: IP地址192.168.10.33,子网掩码为:255.255.255.240 (/28) ,写出所在的网络号 1.得出子网的块大小 ...

  5. 已知局域网IP地址,如何查看mac

    arp -a 加对方IP是查对方的MAC地址 转自: http://zhidao.baidu.com/link?url=8sRdpGcjfGQ-C1F9zNub49Mxe3DAR-RCAHDkHvKC ...

  6. 笔记:修改centos的IP地址相关配置

    最近碰到不少认识的人问相关问题 索性做个笔记 图个方便 修改eth0的网卡配置vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPR ...

  7. 学习React之前你需要知道的的JavaScript基础知识

    在我的研讨会期间,更多的材料是关于JavaScript而不是React.其中大部分归结为JavaScript ES6以及功能和语法,但也包括三元运算符,语言中的简写版本,此对象,JavaScript内 ...

  8. c++ ip地址相关

    #include <stdio.h> #include <string.h> #include <arpa/inet.h> #include <sys/typ ...

  9. BFS:UVa1590-IP Networks (子网掩码相关知识)

    IP Networks Alex is administrator of IP networks. His clients have a bunch of individual IP addresse ...

随机推荐

  1. linux使用组ID(SGID)共享文件

    假如你有这样一个需求,一个小组内很多成员共同研究一个项目,为了这个项目我们需要分配一个具体的目录. 所有成员都拥有该目录的使用权限,可以互相操作成员的文件及内容.而且不允许其他人查看. 现在开始操作: ...

  2. mitmdump+python的使用(代码篇)

    mitmproxy+python代码篇 一.上个推文我们介绍了mitmdump的简单操作,下面我们开始学习,mitmdump配合python脚本的使用.第一点先讲日志输出.请看图片 先导入ctx模块: ...

  3. JSONobject按照put顺序存储和读取

    new的时候加true即可: JSONObject jsonObject = new JSONObject(true);

  4. 红米手机 android4.4.4 root之路

    第一步: 进入360root官网下载apk安装包: http://root.360.cn/index.html 说明:不是所有的机型都能root,  一般android5.0 以下的系统root的成功 ...

  5. c++ UDP套接字服务器端代码示范

    c++ UDP套接字服务器端代码示范 #include<winsock2.h> //包含头文件 #include<stdio.h> #include<windows.h& ...

  6. [cpp]C++中的析构函数

    C++中的析构函数 简介 析构函数(Destructors),是对象的成员函数,没有返回值也没有参数,且一个类只有一个析构函数,当对象被销毁的时候调用,被销毁通常有这么几个情况. 函数执行结束 程序执 ...

  7. 一分钟开始持续集成之旅系列之:Java + GWT

    作者:CODING - 朱增辉 前言 Google Web Toolkit(GWT)是一个开源.免费的 Web 开发框架,通过该框架,您可以使用 Java 构建复杂.高性能的 JavaScript 应 ...

  8. JDK8--08:Optional

    在程序运行时,空指针异常应该是最常见的异常之一,因此JDK8提供了Optional来避免空指针异常. 首先说明JDK8新增的Optional及相关方法的使用 Optional的常用操作: Option ...

  9. MFC 添加C++类,别的类不通过C++类的定义的对象就可以直接调用C++类里面的成员函数;

    MFC 添加C++类,不用定义C++类的对象,别的类不通过C++类的定义的对象就可以直接调用C++类里面的成员函数: 1先在mfc程序中添加普通类CProdata,然后删除头文件Prodata.h里面 ...

  10. cbitmap 获取RGB

    CBitMap的用法   MFC提供了位图处理的基础类CBitmap,可以完成位图(bmp图像)的创建.图像数据的获取等功能.虽然功能比较少,但是在对位图进行一些简单的处理时,CBitmap类还是可以 ...