|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
IP和子网掩码
) ]* ^( F) U% i; X- o6 G* n3 c+ Q0 f% A/ _! ~$ v6 P2 X+ V
我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP 9 q" B. K% N! \" W
x/ Q. j3 D& Z# j* m9 ]9 S" n3 o
A类IP段 0.0.0.0 到127.255.255.255 2 I/ k; D7 j# r; d
2 w. U& n/ J+ D: E9 y% j- j
B类IP段 128.0.0.0 到191.255.255.255 ; \% b% \$ D/ o5 I, J o7 O
% A1 M: A* j5 s* u% t. ]
C类IP段 192.0.0.0 到223.255.255.255 9 J& j x! K2 F( H" L( Q. m
8 w6 k3 X0 @9 W4 G* f: S+ @ XP默认分配的子网掩码每段只有255或0
! y0 A: ?- P5 z7 ^* O' m9 q, j' e( f
: G% b- J) _2 A9 l A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳1677万多台电脑
; x- z" ^" c$ i/ u; L$ I- r
8 x+ b/ H5 r, Z- O8 }' R B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑
. J2 v4 s8 K9 h+ ~; ~5 Z4 f0 S( c8 _. j1 A" j+ |
C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑 " _( b, P% f' b' p9 _. g0 |& X
8 P( p9 X. a0 q6 g+ w( R0 _# q7 f! R 我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。我们来说详细看看吧。
7 T2 c8 x1 q* \4 z) M8 ]) s1 q+ T+ v+ D0 ~( N' u8 R6 ]( k
要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。) 8 Y5 a. K' k8 [1 |5 Q$ N" S
8 U* I6 d8 E2 _6 ?# A0 N* K
把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串[red]连续[/red]的1和一串[red]连续[/red]的0组成的(一共4段,每段8位,一共32位数)。 - c% B$ o8 l n6 ]: Z0 Y O
e: F+ e5 g' V6 f* Z. J5 n5 t
255.0.0.0 11111111.00000000.00000000.00000000 ' C' E$ z. F' l& ~% [3 K
2 ]' n+ a2 P5 _1 [7 Q) M 255.255.0.0 11111111.11111111.00000000.00000000
3 d4 h( C& b' }& M
0 r4 i9 E" A0 N- o3 Z2 s, x5 a 255.255.255.0 11111111.11111111.11111111.00000000
: K' l% V7 H! g4 _ ^6 x7 F. p V* J; x- Y
这是A/B/C三类默认子网掩码的二进制形式,其实,还有好多种子网掩码,只要是一串连续的1和一串连续的0就可以了(每段都是8位)。如11111111.11111111.11111000.00000000,这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目,计算机公式是2的m次方,其中,我们可以把m看到是后面的多少颗0。如255.255.255.0转换成二进制,那就是11111111.11111111.11111111.00000000,后面有8颗0,那m就是8,255.255.255.0这个子网掩码可以容纳2的8次方(台)电脑,也就是256台,但是有两个IP是不能用的,那就是最后一段不能为0和255,减去这两台,就是254台。我们再来做一个。
, I+ @( ~6 q: I9 v6 A# H9 _+ d1 U+ i8 U5 D; v( w% j6 }+ F
255.255.248.0这个子网掩码可以最多容纳多少台电脑? 1 M# W0 @5 X7 l0 f
$ y# I/ ]8 q. g/ m1 b$ n# p- k
计算方法: , |/ u. T% h6 I0 u
4 U7 M5 a' B) w4 ~ 把将其转换为二进制的四段数字(每段要是8位,如果是0,可以写成8个0,也就是00000000) " R D j; a, M+ a, o' u$ ^$ F4 R
7 R0 j7 G8 ]9 V$ |, ]' ?
11111111.1111111.11111000.00000000
3 Q# p4 ~8 L* L2 j: s3 B6 [" q8 U* S, W5 \$ U, R; O6 ?) O. ]% x( q
然后,数数后面有几颗0,一共是有11颗,那就是2的11次方,等于2048,这个子网掩码最多可以容纳2048台电脑。
4 k) c3 s: O# ^( L5 @7 j" W- h+ a6 L) `3 f( s1 L
一个子网最多可以容纳多少台电脑你会算了吧,下面我们来个逆向算法的题。
. l+ w4 ^0 t) q; S5 U0 |$ C
: V% m+ d$ Y: m+ w& U7 b 一个公司有530台电脑,组成一个对等局域网,子网掩码设多少最合适?
, P% j' }8 M$ J6 [( r2 g7 z" k, H# N1 M/ I. p( G: e7 u% l
首先,无疑,530台电脑用B类IP最合适(A类不用说了,太多,C类又不够,肯定是B类),但是B类默认的子网掩码是255.255.0.0,可以容纳6万台电脑,显然不太合适,那子网掩码设多少合适呢?我们先来列个公式。
! h) S6 i# B6 Z0 @- e' q, e5 j% G8 z" p) q/ o8 M0 F$ f
2的m次方=560
% ` M# H5 N1 w
) Y3 p$ ]! I# S7 \6 ~; r! L: V 首先,我们确定2一定是大于8次方的,因为我们知道2的8次方是256,也就是C类IP的最大容纳电脑的数目,我们从9次方一个一个试2的9次方是512,不到560,2的10次方是1024,看来2的10次方最合适了。子网掩码一共由32位组成,已确定后面10位是0了,那前面的22位就是1,最合适的子网掩码就是:11111111.11111111.11111100.00000000,转换成10进制,那就是255.255.252.0。 ! G- G+ Q$ Z. B6 L
" E- A; f/ o5 }' t- i# a 分配和计算子网掩码你会了吧,下面,我们来看看IP地址的网段。
3 f. y! }5 V, d+ l! Y. _% {; l! ~4 N/ t4 H
相信好多人都和偶一样,认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我样把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255.0做实验吧。 ; n5 S- j0 O, S: ^
- Q$ A: k" I) Q# Z
192.168.0.1 * F6 {0 ]4 E. G8 d
$ x7 E0 f4 _% S9 g2 w
11000000.10101000.00000000.00000001
2 F2 Q: x! i7 {3 G: ^7 u/ B! |; p6 ?0 H2 v2 N/ W
(这里说明一下,和子网掩码一样,每段8位,不足8位的,前面加0补齐。)
! ?! t8 s. I+ r9 s6 s8 p8 e1 T" ~2 ]. U' F0 l
IP 11000000.10101000.00000000.00000001
* t- U: D. R+ s# a4 o8 e& U' ?/ z& @, L4 o/ c- N8 X
子网掩码 11111111.11111111.11111111.00000000
* i5 R" R9 P% r
$ X- q% [5 ~4 X4 z! g, `9 E6 ] 在这里,向大家说一下到底怎么样才算同一网段。 8 D/ v6 h% x' N, S$ v
" @5 |$ G' M5 ~2 Y, Q- y 要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。
+ A! B }/ |; q. W0 Q/ j
# t* m( ^8 i. K' S" a" _ 算法只要把IP和子网掩码的每位数AND就可以了。 $ Q* w$ @7 c& H6 j, s! k1 u
* t, ?+ v9 }; B/ w% M/ m; U c
AND方法:0和1=0 0和0=0 1和1=1
& T( I' m& A8 ~, I( S" k* Q) \
如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位
1 R; X5 W$ W! F* M8 L2 i2 R1 y% _
. o! v2 l5 f* ? IP 11000000.10101000.00000000.00000001
/ T' I9 }6 y2 P+ |$ R7 @
2 W! p- a _) E 子网掩码 11111111.11111111.11111111.00000000
( ]" d( i! x% u, e- w: f: ]/ O, i9 ^+ {
得出AND结果 11000000.10101000.00000000.00000000 y3 u1 l5 Q5 T+ _/ | G* ]# e
2 R" S! r+ w9 `
转换为十进制192.168.0.0,这就是网络标识, 2 A4 ^# P' j. A! V8 K) G+ P
1 Q1 [$ ~ [4 `& e8 E/ f. r
再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP AND $ |' e z( Q( r! \ V& v
& |+ _ G4 b6 ?$ S 得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1,
' R; Q2 S/ j T
; ~: c6 \6 E0 |1 }+ ~) B v 这0.0.0.1就是主机标识。要想在同一网段,必需做到网络标识一样。 ' ^$ k9 k' U# q! x0 x Z
3 ]8 l7 a& L& H$ [7 d 我们再来看看这个改为默认子网掩码的B类IP
4 {* N* T5 N1 x" @1 ^- n0 L
. f1 C7 T7 |) X7 Y f/ g( D 如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗?
! O7 x3 Q2 g9 w: m, c5 V+ f
' B( X6 S! D4 P% q" Y3 Q. c 先将这些转换成二进制
. A/ N4 D( H0 H. i9 S) v
" Z" O8 V N3 X2 b# x4 _; n2 I 188.188.0.111 10111100.10111100.00000000.01101111 # c: Y( @9 H! ?! x9 [9 e: C2 E2 a
, W" o# x+ ~) d: D8 {2 n# H' ^
188.188.5.222 10111100.10111100.00000101.11011010 0 E( n1 [5 F2 g3 A' J
4 ?2 R% }4 F- z5 |$ `3 [/ o5 q, G 255.255.254.0 11111111.11111111.11111110.00000000
9 J3 t/ K2 i" ^" F7 k I' J) m b( x2 w7 C/ H: ]! j. \+ |
分别AND,得
5 _0 f) f+ S/ B I/ u' l' g) y5 ]. L ]2 I' e
10111100.10111100.00000000.00000000
2 T/ Y, ?/ c0 `0 r8 ^- }/ t8 @% u6 k0 W% D0 }; t6 P
10111100.10111100.00000100.00000000 ) j- U& u4 L1 \* g1 M
\5 S0 `' e- v* x 网络标识不一样,即不在同一网段。
( H7 {; }% O' i; G9 A" x5 x* |
# H& G3 g# ^! x 判断是不是在同一网段,你会了吧,下面,我们来点实际的。 & i, W/ A- f( O5 q7 D! G" l" ~
$ A, g1 L( _3 O$ Y 一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适? 1 R( B5 x7 `6 u; ?) e) c
* S9 ~5 P; ^, G7 k/ U' t
子网掩码不说了,前面算出结果来了11111111.11111111.11111100.00000000,也就是255.255.252.0 . P1 ]+ D9 I) s- I* O6 g, b9 l+ l
3 Y. m: `/ x, G7 { U 我们现在要确定的是IP如何分配,首先,选一个B类IP段,这里就选188.188.x.x吧
5 q3 x3 v X) Q, |- o3 F9 C4 h3 v' {+ H) p l* D/ A
这样,IP的前两段确定的,关键是要确定第三段,只要网络标识相同就可以了。我们先来确定网络号。(我们把子网掩码中的1和IP中的?对就起来,0和*对应起来,如下:) : N0 A, _' U) o; r# m* G
2 D9 k+ z. d9 F; ^* p/ G0 J 255.255.252.0 11111111.11111111.11111100.00000000 - K2 k/ y$ | r3 q. E
9 y# `7 O& V. N5 |1 S) U1 A 188.188.x.x 10111100.10111100.??????**.******** $ m, m* x4 t* C5 T' @
% N0 t5 z* |& V0 o# j' h. F 网络标识 10111100.10111100.??????00.00000000 1 q! i% A' ^7 U4 J8 I9 t6 h0 E
u+ N( `; M6 ?" j# l: Q$ s L/ @
由此可知,?处随便填(只能用0和1填,不一定全是0和1),我们就用全填0吧,*处随便,这样呢,我们的IP就是
5 }0 t0 N f) w# Q1 ]0 V9 i& K
7 R) s+ W1 G. N6 ]( i" ^% I 10111100.10111100.000000**.********,一共有530台电脑,IP的最后一段1~254可以分给254台计算机,530/254=2.086,采用进1法,得整数3,这样,我们确定了IP的第三段要分成三个不同的数字,也就是说,把000000**中的**填三次数字,只能填1和0,而且每次的数字都不一样,至于填什么,就随我们便了,如00000001,00000010,00000011,转换成二进制,分别是1,2,3,这样,第三段也确定了,这样,就可以把IP分成188.188.1.y,188.188.2.y,188.188.3.y,y处随便填,只要在1~254范围之内,并且这530台电脑每台和每台的IP不一样,就可以了。
+ {7 l6 p7 x/ e0 c# x3 r$ F4 U7 ^6 h A5 C, w- P! T
有人也许会说,既然算法这么麻烦,干脆用A类IP和A类默认子网掩码得了,偶要告诉你的是,由于A类IP和A类默认子网掩码的主机数目过大,这样做无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码。 |
|