IP地址简单入门

Posted 小嘉欣008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP地址简单入门相关的知识,希望对你有一定的参考价值。

------------------------针对网络地址相关的小白,最快速接触网络知识-------------------------

 

可以使用python自带的模块IPy,进行处理IP地址或IP之间的转化。

下载以及安装的方式参照链接:http://blog.51cto.com/weixiaoxin/2063332

 

IP地址:

概述:

计算机要实现网络通信,就必须要有一个用于快速定位的网络地址。IP地址就是计算机网络中的唯一身份ID,与现实世界中快递的配送需要有具体的住宅是一个道理。

每个IP地址的长度为32位(bit)[4 * 8bit(1字节)由 0/1 组成的数字串],分4段,每段8位(1个字节),常用十进制数字表示,每段数字范围为1~254,段与段之间用小数点分隔。如某一台主机的ip地址为:128.20.4.1。

IP地址的组成

IP地址 = 网络地址 + 主机地址 (又称:主机号和网络号组成)

想想,为什么会有行政区划的划定(国家、省市区、街道等),为了更加高效的进行管理、定位;相同的,我们通常将网络也可以分为很多的子网络,每个子网络有自己的网络地址,每个子网络由很多的计算机组成(当然也可以包含另外一个子网络)。我们要找到指定的IP地址,只要先找到指定的网络地址,然后在该网络内找到对应的主机地址即可。

 

以 IP地址 192.168.1.168, 子网掩码 255.255.255.0为例,这个地址中包含了很多含义,即:

192.168.100.168(IP地址) = 192.168.1.0 (网络地址) + 0.0.0.168(主机地址)

在局域网里,同样也需要ip地址,一般内网的ip地址是以192.168开头的,这样很容易区分公网和内网的ip地址。

IP地址分类

网络地址的位数直接决定了可以分配的网络数;主机地址的位数则决定了网络中最大的主机数。

A类地址: 网络位8(7)位+主机位24位,0****************************

IP范围:1.0.0.0--126.255.255.255

127网络位是本地测试地址,不能用于数据通讯。

IP范围:127.0.0.0--127.255.255.255

B类地址:网络位16(14)位+主机位16位,10***************************

IP范围:128.0.0.0--191.255.255.255

C类地址:网络位24(21)位+主机位8位,110**************************

IP范围:192.0.0.0--223.255.255.255

D:224.0.0.0——239.255.255.255

E:240.0.0.0——255.255.255.255

 

A类地址(1.0.0.0-126.255.255.255)用于最大型的网络,该网络的节点数可达16,777,216个。

B类地址(128.0.0.0-191.255.255.255)用于中型网络,节点数可达65,536个。

C类地址(192.0.0.0-223.255.255.255)用于256个节点以下的小型网络的单点网络通信。

D类地址并不反映网络的大小,只是用于组播,用来指定所分配的接收组播的节点组,这个节点组由组播订阅成员组成。D类地址的范围为224.0.0.0-239.255.255.255。

E类(240.0.0.0-255.255.255.254)地址用于试验。

合法的IP地址

IP是Internet Protocol(国际互联网协议)的缩写。

各主机间要进行信息传递必须要知道对方的IP地址。同一个物理网络上的所有主机都用同一个网络ID,网络上的一个主机(工作站、服务器和路由器等)对应有一个主机ID。这样把IP地址的4个字节划分为2个部分,一部分用来标明具体的网络段,即网络ID;另一部分用来标明具体的节点,即宿主机ID。

这样的32位地址又分为五类分别对应于A类、B类、C类、D类和E类IP地址。 

A类IP地址 一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”,即第一段数字范围为1~127。每个A类地址可连接16387064台主机,Internet有126个A类地址。 

B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,即第一段数字范围为128~191。每个B类地址可连接64516台主机,Internet有16256个B类地址。 

C类IP地址 一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是“110”,即第一段数字范围为192~223。每个C类地址可连接254台主机,Internet有2054512个C类地址。 

D类地址用于多点播送。 第一个字节以“1110”开始,第一个字节的数字范围为224~239,是多点播送地址,用于多目的地信息的传输,和作为备用。全零(“0.0.0.0”)地址对应于当前主机,全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。 

E类地址 以“11110”开始,即第一段数字范围为240~254。E类地址保留,仅作实验和开发用。

子网掩码

(也叫做:网络掩码、地址掩码、子网络遮罩)

子网掩码是一个长度为 4 * 8bit(1字节),由连续的1 以及连续的0 两部分组成。

它的作用是:屏蔽(遮住)IP地址的一部分以划分成网络地址和主机地址两部分,并说明该IP地址是在局域网上,还是在远程网上。通过子网掩码,可以把网络划分成子网,即VLSM(可变长子网掩码),也可以把小的网络归并成大的网络即超网。子网掩码不能单独存在,它必须结合IP地址一起使用。

 

假设,局域网中 计算机A 的IP地址为 192.168.1.1,子网掩码为 255.255.255.0, 如下图所示:

网络地址: IP 地址中被 连续的1 遮住的部分,即 11000000.10101000.00000001.00000000, 对应的网络地址:192.168.1.0

主机地址: IP 地址中被 连续的0 遮住的部分,即 00000000.00000000.00000000.00000001, 对应的网络地址:0.0.0.1

其他信息:A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

 

常用的子网掩码有数百种,这里只介绍最常用的两种子网掩码,它们分别是“255.255.255.0”和“255.255.0.0”。 

1. 子网掩码是“255.255.255.0”的网络

最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。

2. 子网掩码是“255.255.0.0”的网络:后面两个数字可以在0~255范围内任意变化,可以提供2552个IP地址。但是实际可用的IP地址数量是2552-2,即65023个。

 

如果一个网络的规模不超过254台电脑,采用“255.255.255.0”作为子网掩码就可以了,现在大多数局域网都不会超过这个数字,因此“255.255.255.0”是最常用的IP地址子网掩码;笔者见到的最大规模的中小学校园网具有1500多台电脑,这种规模的局域网可以使用“255.255.0.0”。局域网最常使用的IP地址“192.168.x.x”默认的子网掩码是“255.255.255.0”。一般情况下,IP地址使用默认子网掩码就可以了。

 

掩码有两种形式,一种是数字表达形式,比如:255.255.0.0 。这个按数字表达就是16

通过子网掩码计算网络地址

计算过程是这样的:

  1. 将IP地址和子网掩码都换算成二进制;

  2. 将两者进行 "与运算",得到网络地址。

 

假设 IP地址为 192.168.1.168,子网掩码为 255.255.255.0, 则网络地址换算步骤如下: 

1)将IP地址和子网掩码分别换算成二进制   

    192.168.1.168 换算成二进制为 11000000.10101000.00000001.10101000

    255.255.255.0 换算成二进制为 11111111.11111111.11111111.00000000 

2)将二者进行与运算 

         11000000.10101000.00000001.10101000 

    与运算  11111111.11111111.11111111.00000000 

    结果    11000000.10101000.00000001.00000000

3) 将运算结果换算成十进制: 192.168.1.0

 

扩展:IP网段表示法

    举例说明:192.168.0.0/24

    192.168.0.0——网络地址

    24——表示子网掩码二进制表示法中,连续的 1 的 个数,这里为:      11111111.11111111.11111111.00000000,即 255.255.255.0

通过子网掩码计算主机地址

计算过程是这样的:

  1. 将IP地址和子网掩码都换算成二进制;

  2. 将IP地址和子网掩码取反进行 "与运算",得到主机地址。

  IP                   11000000.10101000.00000000.00000001

     子网掩码          11111111.11111111.11111111.00000000

  得出AND结果     11000000.10101000.00000000.00000000

    转换为十进制    192.168.0.0,这就是网络标识,再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP AND 得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1,这0.0.0.1就是主机标识。要想在同一网段,必需做到网络标识一样。

  

网关

什么是网关?

  连接两个不同的网络的设备都可以叫网关设备;网关的作用就是实现两个网络之间进行通讯与控制。网关地址就是网关设备的IP地址。

  网关设备可以是 交互机(三层及以上才能跨网络)、路由器、启用了路由协议的服务器、代理服务器、防火墙等

  假设我们有两个网络:

    网络A的IP地址范围为“192.168.1.1~192.168.1.254”,子网掩码为255.255.255.0

    网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0

  要实现这两个网络之间的通信,则必须通过网关。

  网络A向网络B转发数据包的过程:

   如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。

默认网关 

  一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。

  网络ID相同的计算机称之为本地网络,本地网络中的计算机相互通信不需要路由器连接;网络ID不相同的计算机称之为远程网络,远程网络中的计算机要相互通信必须通过路由器连接。

 

例题1:

172.168.34.56/20,一共划分了多少个子网,各子网可以包含多少台主机?

答:

172.168.34.56是一个B 类地址,B类地址用16位表示网络ID,题目中20位表示网络ID,则子网位数为4位,那么子网就有16种变化。

由于IP地址是32位,用20位表示网络ID,则主机ID的位数为12位,则每个子网可以包含2的12次方-2个IP地址,即可以包含4096个IP地址。

注意:主机ID不能全为0也不能全为1。

例题2::

255.255.248.0这个子网掩码可以最多容纳多少台电脑?

答:

把将其转换为二进制的四段数字(每段要是8位)11111111.1111111.11111000.00000000 然后,数数后面有几颗0,一共是有11颗,那就是2的11次方,等于2048,这个子网掩码最多可以容纳2048台电脑。

 

Mac地址

合法与非法的Mac地址划分:

MAC地址的第一个字节必须为偶数,第一个字节为奇数的MAC地址为多播地址。有这样的一种区别方式,但有的UI不做限制,因此这里先不用关注这点。这里所说的无效是:超过16进制的字符即可。

 

MAC地址的连接方式:“:”或“-”

 

生成随机Mac代码:

import random
Maclist = []
for i in range(1,7):
   RANDSTR = "".join(random.sample("0123456789abcdef",2))
  Maclist.append(RANDSTR)
  RANDMAC = ":".join(Maclist)print(RANDMAC)

 

注意:

本机的ip是:127.0.0.11

MAC地址的连接方式:“:”或“-”

中文字符,必须包括“简体字和繁体字”

对于测试来说,有效边界值和无效边界值都必须测试



以上是关于IP地址简单入门的主要内容,如果未能解决你的问题,请参考以下文章

IP 地址重叠/在 CIDR 范围内

如何检查一个IP地址是不是在PHP中的两个IP范围内?

Linux 入门记录:十网络基础

Java计算一个IP地址是不是在指定范围内

判断IP地址是否在指定范围内的方法

检查 IP 地址是不是在范围/子网内的标准/安全方法