A类的子网掩码为 255000 A类网络的IP地址范围为1001-127255255254;
B类的子网掩码为 25525500 B类网络的IP地址范围为:128101-191255255254;
C类的子网掩码为 2552552550 C类网络的IP地址范围为:192011-223255255254。
我们一般是第三种
代码如下:记得在 引用 里面添加对C:\WINDOWS\MicrosoftNET\Framework\v2050727目录下SystemManagementdll的引用
using System;
using SystemCollectionsGeneric;
using SystemComponentModel;
using SystemData;
using SystemDrawing;
using SystemManagement;
using SystemText;
using SystemWindowsForms;
namespace Gateway
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static string GetIPAndDNS()
{
string strIP, strSubnet, strGateway, strDNS;
strIP = "0000";
strSubnet = "0000";
strGateway = "0000";
strDNS = "0000";
try
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mcGetInstances();
foreach (ManagementObject nic in nics)
{
try
{
if (ConvertToBoolean(nic["IPEnabled"]) == true)
{
if ((nic["IPAddress"] as String[])Length > 0 && strIP == "0000")
{
strIP = (nic["IPAddress"] as String[])[0];
}
if ((nic["IPSubnet"] as String[])Length > 0 && strSubnet == "0000")
{
strSubnet = (nic["IPSubnet"] as String[])[0];
}
if ((nic["DefaultIPGateway"] as String[])Length > 0 && strGateway == "0000")
{
strGateway = (nic["DefaultIPGateway"] as String[])[0];
}
if ((nic["DNSServerSearchOrder"] as String[])Length > 0 && strDNS == "0000")
{
strDNS = (nic["DNSServerSearchOrder"] as String[])[0];
}
//STBLibraryClassGlobalWriteIniData("IPSet", "IP1", strIP, @"\WindowsShellini");
//STBLibraryClassGlobalWriteIniData("IPSet", "IP2", strSubnet, @"\WindowsShellini");
//STBLibraryClassGlobalWriteIniData("IPSet", "IP3", strGateway, @"\WindowsShellini");
//STBLibraryClassGlobalWriteIniData("IPSet", "IP4", strDNS, @"\WindowsShellini");
//return strIP + "" + strSubnet + "" + strGateway + "" + strDNS;
}
}
catch (Exception)
{
}
}
}
catch (Exception)
{
}
return "IP地址 "+strIP + "\n" + "子网掩码 " +strSubnet + "\n" + "默认网关 " +strGateway + "\n" + "DNS服务器 " + strDNS;
}
private void Form1_Load(object sender, EventArgs e)
{
thistextBox1Text = GetIPAndDNS();
}
}
}v
子网掩码(sub mask)又叫网路掩码、地址掩码、子网路遮罩,它是一种用来指明一个IP位址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP位址一起使用。子网掩码只有一个作用,就是将某个IP位址划分成网路地址和主机地址两部分。
子网掩码是一个32位地址,用于禁止IP位址的一部分以区别网路标识和主机标识,并说明该IP位址是在区域网路上,还是在远程网上。
基本介绍 中文名 :子网掩码 外文名 :Sub Mask 别称 :网路掩码、地址掩码 行业 :计算机网路 作用 :IP划分成网路地址和主机地址 定义,构成,规则,定义主机数目,计算方式,根据子网数,根据主机数,增量计算法,作用,标注方法,无子网,有子网,地址判断,表示方法,运算示例,示例一,示例二,示例三,复用技术,编址技术,掩码分类,掩码变长,划分捷径, 定义 子网掩码 (sub mask)是每个使用网际网路的人必须要掌握的基础知识,只有掌握它,才能够真正理解TCP/IP协定的设定。 子网掩码——禁止一个IP位址的网路部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255000;对于B类地址来说默认的子网掩码是25525500;对于C类地址来说默认的子网掩码是2552552550。 利用子网掩码可以把大的网路划分成子网,即VLSM(可变长子网掩码),也可以把小的网路归并成大的网路即超网。 构成 要想理解什么是子网掩码,就不能不了解IP位址的构成。网际网路是由许多小型网路构成的,每个网路上都有许多主机,这样便构成了一个有层次的结构。IP位址在设计时就考虑到地址分配的层次特点,将每个IP位址都分割成网路号和主机号两部分,以便于IP位址的定址 *** 作。 IP位址的网路号和主机号各是多少位呢?如果不指定,就不知道哪些位是网路号、哪些是主机号,这就需要通过子网掩码来实现。 规则 子网掩码的设定必须遵循一定的规则。与二进制IP位址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网路位,用二进制数字“1”表示,1的数目等于网路位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网路段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网路广播地址,全为0时表示该网路的网路号,这是两个特殊地址)。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网路正常工作。 定义主机数目 用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。 定义子网掩码的步骤为: A、确定哪些组地址归我们使用。比如我们申请到的网路号为 “21073ab”,该网路地址为c类IP位址,网路标识为“21073a”,主机标识为“b”。 B、根据我们所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们需要12个子网,将来可能需要16个。用第四个位元组的前四位确定子网掩码。前四位都置为“1”,即第四个位元组为“11110000”,这个数我们暂且称作新的二进制子网掩码。 C、把对应初始网路的各个位都置为“1”,即前三个位元组都置为“1”,则子网掩码的间断二进制形式为:“11111111111111111111111111110000” 。 D、把这个数转化为间断十进制形式为:“255255255240” 。 计算方式 由于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。 根据子网数 利用子网数来计算 在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。 1)将子网数目转化为二进制来表示 2)取得该二进制的位数,为 N 3)取得该IP位址的类子网掩码,将其主机地址部分的前N位置1 即得出该IP位址划分子网的子网掩码。 如欲将B类IP位址16819500划分成27个子网: 1)27=11011 2)该二进制为五位数,N = 5 3)将B类地址的子网掩码25525500的主机地址前5位置1(B类地址的主机位包括后两个位元组,所以这里要把第三个位元组的前5位置1),得到 2552552480 即为划分成27个子网的B类IP位址 16819500的子网掩码(实际上是划成了32-2=30个子网)。 这一段介绍的是旧标准下计算的方法,关于旧的标准后文在介绍,在新标准中则可以先将27减去1,因为计算机是从0开始计算的,从0到27实际上是有28个,所以说如果需要27个就需要将27减去1。 根据主机数 利用主机数来计算 1)将主机数目转化为二进制来表示 2)如果主机数小于或等于254(注意去掉保留的两个IP位址),则取得该主机的二进制位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。 3)使用255255255255来将该类IP位址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。 如欲将B类IP位址16819500划分成若干子网,每个子网内有主机700台: 1) 700=1010111100 2)该二进制为十位数,N = 10 3)将该B类地址的子网掩码25525500的主机地址全部置1,得到255255255255 然后再从后向前将后10位置0,即为: 11111111111111111111110000000000 即2552552520。这就是该欲划分成主机为700台的B类IP位址16819500的子网掩码。 增量计算法 子网ID增量计算法(即计算每个子网的IP范围) 其基本计算步骤如下: 第1步,将所需的子网数转换为二进制,如所需划分的子网数为“4”,则转换成成二进制为00000100; 第2步,取子网数的二进制中有效位数,即为向预设子网掩码中加入的位数(既向主机ID中借用的位数)。如前面的00000100,有效位为“100”,为3位(在新标准中只需要2位就可以了); 第3步,决定子网掩码。如IP位址为B类1292000网路,则预设子网掩码为:25525500,借用主机ID的3位以后变为:255255224(11100000)0,即将所借的位全表示为1,用作子网掩码。 第4步,将所借位的主机ID的起始位段最右边的“1”转换为十进制,即为每个子网ID之间的增量,如前面的借位的主机ID起始位段为“11100000”,最右边的“1”,转换成十进制后为2^5=32(此为子网ID增量)。 第5步,产生的子网ID数为:2^m-2 (m为向预设子网掩码中加入的位数),如本例向子网掩码中添加的位数为3,则可用子网ID数为:2^3-2=6个; 第6步,将上面产生的子网ID增量附在原网路ID之后的第一个位段,便形成第一个子网网路ID 12920320(即第一个子网的起始IP段); 第7步,重复上步 *** 作,在原子网ID基础上加上一个子网ID增量,依次类推,直到子网ID中的最后位段为预设子网掩码位用主机ID位之后的最后一个位段值,这样就可得到所有的子网网路ID。如预设子网掩码位用主机ID位之后的子网ID为2552552240,其中的“224”为借用主机ID后子网ID的最后一位段值,所以当子网ID通过以上增加增量的方法得到129202240时便终止,不要再添加了(只能用到129201920)。 我们知道当主机ID为全0时表示网路ID,全1时表示广播地址。在RFC950标准中,不建议使用全0和全1的子网ID。 例如把最后一个位元组的前3位借给网路ID,用后面的5位来表示主机ID,这样就会产生2^3=8个子网,子网ID就分别为000、001、010、011、100、101、110、111这样8个,在RFC950标准中只能使用中间的6个子网ID。 这么做的原因是: 设我们有一个网路:19216800/24(即子网掩码的前24位为1,2552552550),我们需要两个子网,那么按照RFC950,应该使用/26而不是/25,得到两个可以使用的子网192168064和1921680128 对于19216800/24,网路地址是19216800,广播地址是1921680255 对于19216800/26,网路地址是19216800,广播地址是192168063对于192168064/26,网路地址是192168064,广播地址是1921680127
对于1921680128/26,网路地址是1921680128,广播地址是1921680191
对于1921680192/26,网路地址是1921680192,广播地址是1921680255 你可以看出来,对于第一个子网,网路地址和主网路的网路地址是重叠的,对于最后一个子网,广播地址和主网路的广播地址也是重叠的。在CIDR流行以前,这样的重叠将导致极大的混乱。比如,一个发往1921680255的广播是发给主网路的还是子网的?这就是为什么在当时不建议使用全0和全1子网。在今天,CIDR已经非常普及了,所以一般不需要再考虑这个问题。 作用 子网掩码是一个32位地址,是与IP位址结合使用的一种技术。它的主要作用有两个,一是用于禁止IP位址的一部分以区别网路标识和主机标识,并说明该IP位址是在区域网路上,还是在远程网上。二是用于将一个大的IP网路划分为若干小的子网路。 使用子网是为了减少IP的浪费。因为随着网际网路的发展,越来越多的网路产生,有的网路多则几百台,有的只有区区几台,这样就浪费了很多IP位址,所以要划分子网。使用子网可以提高网路套用的效率。 通过IP 地址的二进制与子网掩码的二进制进行与运算,确定某个设备的网路地址和主机号,也就是说通过子网掩码分辨一个网路的网路部分和主机部分。子网掩码一旦设定,网路地址和主机地址就固定了。子网一个最显著的特征就是具有子网掩码。与IP位址相同,子网掩码的长度也是32位,也可以使用十进制的形式。例如,为二进制形式的子网掩码:1111 11111111 11111111 11110000 0000,采用十进制的形式为:2552552550。 通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是,将计算机十进制的IP位址和子网掩码转换为二进制的形式,然后进行二进制“与”(AND)计算(全1则得1,不全1则得0),如果得出的结果是相同的,那么这两台计算机就属于同一网段。 标注方法 无子网 无子网的标注法 对无子网的IP位址,可写成主机号为0的掩码。如IP位址210731405,掩码为2552552550,也可以预设掩码,只写IP位址。 有子网 有子网的标注法 有子网时,一定要二者配对出现。以C类地址为例。 以下一段指定掩码为27位(1111 1111, 1111 1111, 1111 1111, 111 0 0000=>255255255224 1.IP位址中的前3个位元组表示网路号,后一个位元组既表明子网号,又说明主机号,还说明两个IP位址是否属于同一个网段。如果属于同一网路区间,这两个地址间的信息交换就不通过路由器。如果不属同一网路区间,也就是子网号不同,两个地址的信息交换就要通过路由器进行。 例如: 对于IP位址为210731405的主机来说,其主机标识为5=> 000 00101, 对于IP位址为2107314016的主机来说它的主机标识为16=> 000 10000, 以上两个主机标识的前面三位全是000,说明这两个IP位址在同一个网路区域中,这两台主机在交换信息时不需要通过路由器进行。 21073601的主机标识为1=> 000 00001, 2107360252的主机标识为252=> 111 11100, 这两个主机标识的前面三位000与111不同,说明二者在不同的网路区域,要交换信息需要通过路由器。其子网上主机号各为1和252。 2.掩码的功用是说明有子网和有几个子网,但子网数只能表示为一个范围,不能确切讲具体几个子网,掩码不说明具体子网号,有子网的掩码格式(对C类地址)。 地址判断 子网掩码是用来判断任意两台计算机的IP位址是否属于同一子网路的根据。 最为简单的理解就是两台计算机各自的IP位址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网路上的,可以进行直接的通讯。就这么简单。 表示方法 子网掩码通常有以下2种格式的表示方法: 1. 通过与IP位址格式相同的点分十进制表示 如:255000 或255255255128 2. 在IP位址后加上"/"符号以及1-32的数字,其中1-32的数字表示子网掩码中网路标识位的长度 如:19216811/24 的子网掩码也可以表示为2552552550 子网掩码一般为2552552550 运算示例 示例一 I P 地址 19216801 子网掩码 2552552550 AND运算(AND运算法则:1 与1 = 1 ,1 与0 = 0 ,0 与1 = 0 ,0 与0 = 0 ,即当对应位均为1时结果为1,其余为0。) 转化为二进制进行运算: I P 地址 11000000101010000000000000000001 子网掩码 11111111111111111111111100000000 AND运算 11000000101010000000000000000000 转化为十进制后为: 19216800 示例二 I P 地址 1921680254 子网掩码 2552552550 AND运算 转化为二进制进行运算: I P 地址 11000000101010000000000011111110 子网掩码 11111111111111111111111100000000 AND运算 11000000101010000000000000000000 转化为十进制后为: 19216800 示例三 I P 地址 19216804 子网掩码 2552552550 AND运算 转化为二进制进行运算: I P 地址 11000000101010000000000000000100 子网掩码 11111111111111111111111100000000 AND运算 11000000101010000000000000000000 转化为十进制后为: 19216800 通过以上对三组计算机IP位址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为19216800 所以计算机就会把这三台计算机视为是同一子网路,然后进行通讯的。 也许你又要问,这样的子网掩码究竟有多少个IP位址可以用呢?你可以这样算。 根据上面我们可以看出,区域网路内部的ip地址是我们自己规定的(当然和其他的ip地址是一样的),这个是由子网掩码决定的通过对2552552550的分析。可得出: 前三位IP码由分配下来的数字就只能固定为1921680 所以就只剩下了最后的一位了,那么显而易见了,ip地址只能有(2的8次方-2),即256-2=254,一般主机地址全为0或者1(二进制)有其特殊的作用。 那么你可能要问了:如果我的子网掩码不是2552552550呢?你也可以这样做啊假设你的子网掩码是2552551280 那么你的区域网路内的ip地址的前两位肯定是固定的了 这样,你就可以按照下边的计算来看看同一个子网内到底能有多少台机器 1.十进制128 = 二进制1000 0000 2.IP码要和子网掩码进行AND运算 3. I P 地址 11000000101010001 子网掩码 11111111111111111000000000000000 AND运算 11000000101010001000000000000000 转化为十进制后为: 192 168 128 0 4.可知我们内部网可用的IP位址为: 11000000101010001000000000000000 到 11000000101010001111111111111111 (也可以是:11000000101010000000000000000000 到11000000101010000111111111111111) 5.转化为十进制: 192 1681280 到192 168255255 (或者19216800到192168127255) 6.0和255通常作为网路的内部特殊用途。通常不使用。 7.于是最后的结果如下:我们单位所有可用的IP位址为: 1921681281-192168128254 1921681291-192168129254 1921681301-192168130254 1921681311-192168131254 1921681391-192168139254 1921681401-192168140254 1921681411-192168141254 1921681421-192168142254 1921681431-192168143254 1921682541-192168254254 1921682551-192168255254 8.总数为(255-128+1)(254-1+1) =128 254 = 32512 子网内包含的机器数目应该是2^n-2,比如说上面的子网掩码是2552551280,那么他的网路号是17位,主机号是15位,只要主机号不全是0或者1就是可以的,所以ip地址是1921681920(11000000101010001100000000000000)也允许,除掉全0全1,结果为2^15-2(255-128+1)=32512 9.看看的结果是否正确 (1)、设定IP位址为1921681281 Ping 192168129233通过测试 访问:192168129233可以显示出主页 (2)、设定IP位址为192168255254 Ping 192168255254 通过测试 访问:192168255254 可以显示出主页 10.结论 以上证明我们的结论是对的。 现 在你就可以看你的子网中能有多少台机器了 255255255128 分解: 11111111111111111111111110000000 所以你的内部网路的ip地址只能是 xxxxxxxxxxxxxxxxxxxxxxxx0 到 xxxxxxxxxxxxxxxxxxxxxxxx01111111 子网掩码 复用技术 子网TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对IP位址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负担:第一,巨大的网路地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网路负担。 因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在内部主要表现为网路地址的增减,因此解决问题的思路集中在:如何减少网路地址。于是IP网路地址的多重复用技术应运而生。 通过复用技术,使若干物理网路共享同一IP网路地址,无疑将减少网路地址数。 编址技术 子网编址(sub addressing)技术,又叫子网寻径(sub routing),英文简称subting,是最广泛使用的IP网路地址复用方式,已经标准化,并成为IP位址模式的一部分。一般的,32位的IP位址分为两部分,即网路号和主机号,我们分别把他们叫做IP位址的“网间网部分”和“本地部分”。子网编址技术将本地部分进一步划分为“物理网路”部分和“主机”部分,如图:网间网部分物理网路主机 |←网间网部分→|←————本地部分—————→| |←物理网路→|←—主机部分——→| 其中“物理网路”用于标识同一IP网路地址下的不同物理网路即是“子网”。 (2)子网掩码IP协定标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP位址中的某位为网路地址(包括网间网部分和物理网路号)中的一位;若位模式中的某位置0,则对应IP位址中的某位为主机地址中的一位。例如位模式: 11111111 11111111 11111111 00000000中,前三个位元组全1,代表对应IP位址中最高的三个位元组为网路地址;后一个位元组全0,代表对应IP位址中最后的一个位元组为主机地址。这种位模式叫做子网模(sub mask)或“子网掩码”。 为了使用的方便,常常使用“点分整数表示法”来表示一个IP位址和子网掩码,例如c类地址子网掩码(11111111 11111111 11111111 00000000)为:2552552550 IP协定关于子网掩码的定义提供一种有趣的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的路由器支持在子网中使用低序或无序的位,因此在实际套用中通常各网点采用连续方式的子网掩码。像25525525564和255255255160等一类的子网掩码不推荐使用。 (3)子网掩码与IP位址结合使用,可以区分出一个网路地址的网路号和主机号。 例如:有一个C类地址为:192.9.200.13其预设的子网掩码为:255.255.255.0则它的网路号和主机号可按如下方法得到: ①将IP位址192.9.200.13转换为二进制11000000 00001001 11001000 00001101 ②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000 ③将两个二进制数逻辑与(AND)运算后得出的结果即为网路部分 11000000 00001001 11001000 00001101 AND 11111111 11111111 11111111 00000000 11000000 00001001 11001000 00000000结果为19292000,即网路号为19292000。 ④将子网掩码取反再与IP位址逻辑与(AND)后得到的结果即为主机部分11000000 00001001 11001000 00001101 AND 00000000 00000000 00000000 11111111 结果为00000000 00000000 00000000 00001101转化为十进制得到00013,即主机号为13。 掩码分类 子网掩码一共分为两类。一类是预设(自动生成)子网掩码,一类是自定义子网掩码。预设子网掩码即未划分子网,对应的网路号的位都置1,主机号都置0。 A类网路预设子网掩码:255000 B类网路预设子网掩码:25525500 C类网路预设子网掩码:2552552550 自定义子网掩码是将一个网路划分为几个子网,需要每一段使用不同的网路号或子网号,实际上我们可以认为是将主机号分为两个部分:子网号、子网主机号。形式如下: 未做子网划分的ip地址:网路号+主机号 做子网划分后的ip地址:网路号+子网号+子网主机号 也就是说ip地址在划分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。子网掩码是32位二进制数,它的子网主机标识用部分为全“0”。利用子网掩码可以判断两台主机是否在同一子网中。若两台主机的IP位址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。 掩码变长 可变长子网掩码(VLSM)的作用:节约IP位址的空间;减少路由表大小。使用VLSM时,所采用的路由协定必须能够支持它,这些路由协定包括RIPv2,OSPF,EIGRP和BGP。关于更多的VLSM知识,可以去百度搜寻。 划分捷径 1会产生多少个子网 2的x次方-2(x代表掩码位,即2进制为1的部分,现 在的网路中,已经不需要-2,已经可以全部使用,不过需要加上相应的配置命令,例如CISCO路由器需要加上ip sub zero命令就可以全部使用了。) 2能有多少主机 2的y次方-2(y代表主机位,即2进制为0的部分) 3有效子网是 有效子网号=256-10进制的子网掩码(结果叫做block size或base number) 4子网的广播地址是 广播地址=下个子网号-1 5有效主机分别是 忽略子网内全为0和全为1的地址剩下的就是有效主机地址。最后有效1个主机地址=下个子网号-2(即广播地址-1)
以上就是关于本机的子网掩码是什么全部的内容,包括:本机的子网掩码是什么、C#如何获取本机网关,DNS,子网掩码、子网掩码详细资料大全等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)