|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
IP和子网掩码
6 _' n' `0 Y0 o. u( N o
' z3 T. c4 B D2 X 我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP ; h* q' ]. `" J! { |
4 F9 d% A3 Q4 I/ K: I/ ^; f
A类IP段 0.0.0.0 到127.255.255.255 + }; ~4 J; l$ b
3 e3 X+ X% W+ E8 Z. p B类IP段 128.0.0.0 到191.255.255.255 $ D0 F7 v5 v% z6 e' L% N+ y
, A. j3 w/ o0 ~, ]
C类IP段 192.0.0.0 到223.255.255.255
" a* N8 [0 l6 a6 f) A& ?. u/ p0 ?! B6 J# C
XP默认分配的子网掩码每段只有255或0 " p3 M) q0 I' m: Y- m8 Z. @1 R
# `: f# {* m. n) Q A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳1677万多台电脑 ! Q$ x* B7 U' d9 u5 R5 B5 H
/ L! i( Q* o7 K _# F# R B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑 - M( g" U% n/ z& R
+ J2 d3 M. R6 |& L$ R/ L C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑
& K* B$ H7 V$ Q+ |
5 f. \$ E# \$ B5 d6 C' H$ | 我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。我们来说详细看看吧。 ; |% ?6 X9 D C0 t/ K, v+ N
9 X- e: y. M* K6 d" A3 x
要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。) 6 {0 R7 c( K, @
" ]5 X- @( `: F/ z: u
把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串[red]连续[/red]的1和一串[red]连续[/red]的0组成的(一共4段,每段8位,一共32位数)。 * d! Y; w9 X# ]. M
' I Y& _$ r6 A+ C/ Q
255.0.0.0 11111111.00000000.00000000.00000000 5 `% M8 i5 R: p+ Z+ t. z0 r
" Z7 ]0 y, h) g* x- t 255.255.0.0 11111111.11111111.00000000.00000000 % ^4 L& W/ M2 x1 s5 d7 ~
+ o% i- H+ B$ {9 h8 n, u; _7 U; a
255.255.255.0 11111111.11111111.11111111.00000000 . _7 V$ a- y- b" _7 t- u
2 G- C7 B/ o( ~& ^: p
这是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台。我们再来做一个。 8 O7 S5 R P1 ]/ J, c% _( l
1 G- E ~6 R' i+ p" A# v2 n& I. ? 255.255.248.0这个子网掩码可以最多容纳多少台电脑?
, P$ K. _' {" Z% b' e& l. K k8 l3 K
计算方法:
- `* n& s3 x. Q$ K. w& p: S! x$ [9 z' X2 k4 T# ^
把将其转换为二进制的四段数字(每段要是8位,如果是0,可以写成8个0,也就是00000000)
& ^ v# s9 `& y% z& Y+ _3 u9 F X- ~. L$ P. Z$ Z* i
11111111.1111111.11111000.00000000 . w8 M6 e% ?4 U( m
/ B i9 h7 y6 d! g 然后,数数后面有几颗0,一共是有11颗,那就是2的11次方,等于2048,这个子网掩码最多可以容纳2048台电脑。
7 ?9 |2 }( r, [) g% C7 S, Y2 v
一个子网最多可以容纳多少台电脑你会算了吧,下面我们来个逆向算法的题。 ! `) I8 O! A, n( u8 e3 w
6 u. h$ m9 l$ u/ ]' l5 r
一个公司有530台电脑,组成一个对等局域网,子网掩码设多少最合适?
& k8 J9 s8 N* C% W5 W9 W& v, ~( H" V& {9 J2 D
首先,无疑,530台电脑用B类IP最合适(A类不用说了,太多,C类又不够,肯定是B类),但是B类默认的子网掩码是255.255.0.0,可以容纳6万台电脑,显然不太合适,那子网掩码设多少合适呢?我们先来列个公式。
9 z) M& ^: Y! v6 \3 O1 G) k2 U- h4 j
. k" h, P% \' [$ s- w( q" @8 K3 W 2的m次方=560
3 c( C6 w( h! I5 d* M0 H$ i D d% ?& n' T6 p$ v! }/ g
首先,我们确定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。 1 R! Z9 j. Q6 i; F `* ?. J) F7 z
) e& P1 X+ d' r1 E$ t5 U9 u 分配和计算子网掩码你会了吧,下面,我们来看看IP地址的网段。 " M/ c, A# ?. m7 A5 @
8 n/ c) z/ j- _( ~ 相信好多人都和偶一样,认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我样把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255.0做实验吧。
5 I4 A& P1 I2 _2 G- c. y$ o. J7 c8 J7 r; [! Y: {- R' c) M* J
192.168.0.1
) J4 v* _1 `6 Q+ Y; ~5 c! k+ {$ I; t6 ^( q2 b$ X! q
11000000.10101000.00000000.00000001 8 t9 v; b' y. I& Y7 ]1 \
' I6 D" c* N0 Z p2 c6 @0 m
(这里说明一下,和子网掩码一样,每段8位,不足8位的,前面加0补齐。) + B* c& r# ]( Y
& A- A# T, I. o; Q4 w3 }3 N: o
IP 11000000.10101000.00000000.00000001
6 b$ u* `6 w: v% D* Q5 {# m8 u* d# G6 r( a
子网掩码 11111111.11111111.11111111.00000000 0 o: F/ s6 X) z& g# V8 V, E. B
# L r, A U0 u 在这里,向大家说一下到底怎么样才算同一网段。
- \) a7 S7 j. d6 L( M- M; V+ c$ m* O+ e$ s# F& N. C% X
要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。 a" G, u" `4 }" m
# W- Y, E9 ^5 C( B) ` w 算法只要把IP和子网掩码的每位数AND就可以了。 1 e9 }# S# K/ z% t s4 I
: B& J, v! ?& l) y8 I1 M
AND方法:0和1=0 0和0=0 1和1=1 ) P0 q0 e7 g4 r' D
7 i/ o" L& v( e: e) ?& A7 F) p
如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位
! \. K! ]) J$ Y/ k# @5 D* g k: ]( i4 o
IP 11000000.10101000.00000000.00000001 0 }+ s }; @( p& c) T* a
: G5 _5 `& ]" [ 子网掩码 11111111.11111111.11111111.00000000
- Z1 W1 _8 H& v8 Z# [' t
! O h. A9 I) m4 x 得出AND结果 11000000.10101000.00000000.00000000
+ {6 S- E/ N7 M& p: n( O5 b( M& ]% Y
转换为十进制192.168.0.0,这就是网络标识,
0 ]6 L7 D6 S, Z9 ~. X; e ?; O4 c, l) r
再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP AND
O) P1 w) T( C( i
+ D6 q) H8 f3 J, l+ O3 V 得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1,
1 A! U# o1 ?6 D; X2 S# V/ ]
- A5 G6 E6 I) e% ]! s" n7 w3 M 这0.0.0.1就是主机标识。要想在同一网段,必需做到网络标识一样。 * t$ \5 V; v, r# ]4 y! \' Y
$ d$ u* u+ B. K9 @7 ^: H9 g6 A 我们再来看看这个改为默认子网掩码的B类IP " D' Q* n0 J' {2 t2 j H
; G! J7 Y# r7 V9 Z. R: t 如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗? ! ^) t1 t% W! c% ^
3 v" ~. N/ n5 [+ X 先将这些转换成二进制 6 G' g0 n/ m8 ?: B# L
8 d0 r J) O" p0 V& w+ b 188.188.0.111 10111100.10111100.00000000.01101111
4 l; Z' Y" O h {- G# B& y' X! q- O" p" t
188.188.5.222 10111100.10111100.00000101.11011010
& b1 a f9 h) a5 e7 M
) l Y! q9 t# ~, O9 T8 Y 255.255.254.0 11111111.11111111.11111110.00000000
( M, H P. ^" _& R" Z) ~) l/ j: K; ^; K* y& b0 c' E$ T
分别AND,得 5 n( q! T, u9 N
* Y0 G$ j9 C% e# o$ i! N 10111100.10111100.00000000.00000000
$ g" b7 @+ x4 g3 l
. x0 R# X! G( H" k 10111100.10111100.00000100.00000000 $ T5 U0 `! }. \! v
! h; g+ R: z7 j& K; i, ~% Q
网络标识不一样,即不在同一网段。 9 q [! V. [" P* b B$ d6 W
. ~1 K1 z& b2 z5 r( ~( z& }
判断是不是在同一网段,你会了吧,下面,我们来点实际的。 . z C9 J, @, j; t
" ?6 b. N! e& g5 F0 M 一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适?
- ~! f$ n4 j# Z: o* G
/ Z7 D8 x8 z( l; b; i. o 子网掩码不说了,前面算出结果来了11111111.11111111.11111100.00000000,也就是255.255.252.0
' W. d8 o5 T7 X {# }
+ ~8 \. a8 v4 n+ |* P 我们现在要确定的是IP如何分配,首先,选一个B类IP段,这里就选188.188.x.x吧
4 I2 \% g% @, I; }+ Q2 P3 N3 N
8 {4 O2 f% d' U3 z5 o* ]) b" S 这样,IP的前两段确定的,关键是要确定第三段,只要网络标识相同就可以了。我们先来确定网络号。(我们把子网掩码中的1和IP中的?对就起来,0和*对应起来,如下:)
+ d2 @+ U% h1 y$ i. E( a1 Y$ |7 i, c' V( J0 O& s
255.255.252.0 11111111.11111111.11111100.00000000 " h8 t* m5 ?5 E) n9 S
% G5 ^) u: a% P9 D2 p+ Q
188.188.x.x 10111100.10111100.??????**.******** 2 O9 @4 W# `+ a% p
; k g- j% Z* q! Z. X3 o 网络标识 10111100.10111100.??????00.00000000 ) H( j& D; c! n* {6 T2 x) i' f3 M- m
* m2 {! J9 a1 ]+ ^7 L 由此可知,?处随便填(只能用0和1填,不一定全是0和1),我们就用全填0吧,*处随便,这样呢,我们的IP就是 0 L: j& U7 w" U3 S. \
' q% q, ]' G7 b; W" F: t
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不一样,就可以了。
{& s8 F! p4 t
4 x% t6 D$ @( V( O2 [ 有人也许会说,既然算法这么麻烦,干脆用A类IP和A类默认子网掩码得了,偶要告诉你的是,由于A类IP和A类默认子网掩码的主机数目过大,这样做无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码。 |
|