已知IP、子网掩码,求网络位、主机位、广播地址

前       言

本文档是简单介了逻辑算法、以及如何在已知IP地址和子网掩码的情况下计算网络位、主机位以及广播地址。所有步骤远的采用最原始的二进制方式,直击原理,请仔细阅读。

1、逻辑算法

在计算网络位、主机地址、广播地址时,会使用到逻辑与运算和逻辑或运算,所以了解其算法是必要的。详细章节请百度,这里只做简单介绍。

&&是逻辑与运算符,|| 是逻辑或运算符

逻辑与运算:当两个二进制数1和0做逻辑与运算时,全为真(1)即结果为真(1),一个为假即全为假(0)

逻辑或运算:当两个二进制数1和0做逻辑或运算时,全为假(0)即结果为假(0),一个为真即全为真(1)

2、已知IP和子网掩码,求网络位、主机位、广播地址:

I P 地址:121.40.81.200

子网掩码: 255.255.252.0

2.1、先把IP地址和子网掩码转换成二进制

I P 地址:121.40.81.200 转换二进制 01111001.00101000.01010001.11001000

子网掩码:255.255.252.0 转换二进制 11111111.11111111.11111100.00000000

2.2、求网络位

二进制IP地址和二进制子网掩码进行【逻辑与运算】得出网络位

二进制I P地址:01111001.00101000.01010001.11001000

二进制子网掩码:11111111.11111111.11111100.00000000

逻辑与运算后结果是:01111001.00101000.01010000.00000000

将结果转换成十进制:121.40.80.0

网络位是:121.40.80.0

2.3、求广播地址

反转后的子网掩码和二进制IP地址做【逻辑或运算】得出广播地址

反转前子网掩码:11111111.11111111.11111100.00000000

反转后子网掩码:00000000.00000000.00000011.11111111(计算广播地址时必须反转掩码)

二进制I P地址:01111001.00101000.01010001.11001000

逻辑或运算后结果是:01111001.00101000.01010011.11111111

将结果转换成十进制:192.168.83.255

广播地址是:192.168.83.255

2.4、求主机位

反转前子网掩码:11111111.11111111.11111100.00000000

反转后子网掩码:00000000.00000000.00000011.11111111(反转后的子网掩码就是主机位)

去除多余的0:11111111

转换成10进制:1023 + 1 (因为二进制和IP都是从0计算的,0也要算一个IP,所以 + 1)

主机位是:1024,此IP段可容纳1024个主机

2.5、最终结果

I P 地址:121.40.81.200     二进制IP地址:01111001.00101000.01010001.11001000

子网掩码: 255.255.252.0   二进制子网掩码:11111111.11111111.11111100.00000000

网络位是:121.40.80.0       二进制网络位:01111001.00101000.01010000.00000000

广播地址:121.40.83.255   二进制广播地址:01111001.00101000.01010011.11111111

主机位是:0.0.3.255         二制制主机位:00000000.00000000.00000011.11111111(一共可容纳1023+1台主机)

它的网段:121.40.80.0 至 121.40.83.255

附录、

3、IP地址是什么?

IP地址是英语:Internet Protocol Address的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),但在日常应用中,都会被转化成10进制来表示。

例:100.4.5.6,实际上是32位二进制数(01100100.00000100.00000101.00000110)。

4、子网掩码是什么?

子网掩码(英语:subnet mask 缩写)又叫网络掩码、地址掩码、子网络遮罩。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。如果不指定,就不知道哪些位是网络号、哪些是主机号,以及广播地址。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。

例:255.255.252.0 实际上是32位二进制数(11111111.11111111.11111100.00000000)

5、网段是什么?

网段,就是一段一段的网络。网段一般指一个计算机网络中使用同一物理层设备直接通讯(ARP)的那些IP的统称,称为网段。例:192.168.1.118/255.255.255.0 它的网段是 192.168.1.0 - 192.168.1.255 ,该网段内的IP直接通讯(通过ARP通讯),不需要网关的转发。

6、广播地址是什么?

广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机。

7、主机位(号)和网络位(号)是什么?

主机位是子网掩码或子网掩码的反转。由1和0组成,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。

时间: 2024-10-18 08:07:44

已知IP、子网掩码,求网络位、主机位、广播地址的相关文章

已知矩形面积求最小周长

Description There is a piece of paper in front of Tom, its length and width are integer. Tom knows the area of this paper, he wants to know the minimum perimeter of this paper. Input In the first line, there is an integer T indicates the number of te

已知三点求圆心与半径

已知三点求圆心与半径  [email protected] http://blog.csdn.net/kezunhai 在计算机图像图形学中,经常会用到求圆心或圆半径的情况,本文介绍一种已知三个点求圆心和圆半径的方法(当然三个点不能共线,共线的三个点不能构成圆). 原理:相互连接三个点,选取其中的任意两条直线,通过对这两条直线的中心做垂线,两条垂线的交点就是圆心,以此点为圆心,以此点到任意一点的距离为半径画圆. 三个点分别计为pt1, pt2, pt3:取直线p1p2和p1p3(也可以取其他直线

poj 2002(好题 链式hash+已知正方形两点求另外两点)

Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 18493   Accepted: 7124 Description A square is a 4-sided polygon whose sides have equal length and adjacent sides form 90-degree angles. It is also a polygon such that rotating abou

已知段地址,求CPU寻址范围

已知段地址为0001H,仅通过变化偏移地址寻址,则CPU的寻址范围是? 物理地址 = 段地址×16 + 偏移地址 所以物理地址的范围是[16×1H+0H, 16×1H+FFFFH] 也就是[10H×1H+0H, 10H×1H+FFFFH] 所以CPU的寻址范围是[10H, 1000FH] 原文地址:https://www.cnblogs.com/buyishi/p/10591351.html

已知传递函数,求幅频响应?

例如H(z)=(1-z^2)/(1+2z+z^2) 可以这样,a=[1 2 1];%分母b=[-1 0 1];%分子[X,w]=freqz(b,a);%求取系统频率响应plot(w/pi,abs(X)); %画解卷绕后的幅值响应grid; 系数是从高次到低次方?

已知一个排列求下一个排列(NOIP2004P4 火星人 题解)转

题目描述略) 本题题意为求给定长度为 n 的数列的后第 m 个全排列(字典序). 对于一个给定的数列 a[0 .. n-1],求其下一个字典序的全排列算法如下: 从右向左查询最大的下标 i (0 ≤ i ≤ n-1) 使得 a[i] < a[i+1]: 从左向右查询最小的元素 a[j] (i+1 ≤ j ≤ n-1) 使得 a[i] < a[j]: 交换 a[i] 和 a[j]: 逆置翻转 a[i+1 .. n-1]. 算法分析:我们可以发现,第一步求出的 i 下标表示 a[i+1 .. n-

poj 1329(已知三点求外接圆方程.)

Circle Through Three Points Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3766   Accepted: 1570 Description Your team is to write a program that, given the Cartesian coordinates of three points on a plane, will find the equation of the

poj 2242(已知三点求外接圆周长)

The Circumference of the Circle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8310   Accepted: 4960 Description To calculate the circumference of a circle seems to be an easy task - provided you know its diameter. But what if you don't

已知空间三点组成的面求该面上某点的Z值

已知空间三点,那么可以就可以确定空间三点组成的平面.此时可以根据某一点的X值和Y值,来求取该点在平面上的Z值.这个过程对于求三角面片上某点的高程或者权值特别有用,其本身也可以看作一种线性插值. 其算法思路也特别简单,首先算出其三点组成的平面法向量(可参看<已知三点求平面法向量>);然后根据平面法向量\(n=(A,B,C)\)和平面上某点\(m=(x0,y0,z0)\),有平面的点法式方程: \[ A(X-x0)+B(Y-y0)+C(Z-z0)=0 \] 最后根据欲求点的X.Y值,代入公式解算Z