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地址的连接方式:“:”或“-”
中文字符,必须包括“简体字和繁体字”
对于测试来说,有效边界值和无效边界值都必须测试