如何判斷兩個IP地址是否在同一個網段?什麼是子網掩碼?

對於ip地址我們前面通過多次文章,大家都有一定的理解,不過通過的留言,有部分朋友還是對子網掩碼、ip地址的網段有些疑問,那麼今天我們一起來解下這方面的內容。

一、什麼是子網掩碼?

在瞭解ip地址的網段之前,我們先來了解子網掩碼,很多對網絡瞭解不深的朋友都對子網掩碼有些迷惑, 不瞭解它是用來幹什麼的?

子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址和主機地址兩部分。

說的通俗的話,就是用來分割子網和區分那些ip是同一個網段的,那些不是同一網段的。

例如,兩個人都叫張三,但一個張三是張家村的,另一個張三是張村的,那麼如何區分這兩個張三分別是屬於那個村的呢?得讓村長來區分,就可以準確的把各自的張三領回村,那麼子網掩碼就相當於村長,它就是用來區分ip該ip地址是屬於那個網段的。

在實際項目中,我們通常會遇到這樣的ip地址。

ip地址:192.168.1.1 子網掩碼:255.255.255.0

ip地址:192.168.1.2 子網掩碼:255.255.255.0

我們可以直接的判斷,他們是同屬於一個網段的ip地址。

那麼對於下面這樣的呢?

ip地址:192.168.1.1 子網掩碼:255.255.255.0

ip地址:192.168.1.2 子網掩碼:255.255.0.0

這兩個ip地址雖然在不看掩碼的情況下,比較像,但他們並不是同一個網段內的。

這個可以從子網掩碼來判斷,

192.168.1.1 255.255.255.0是屬於192.168.1.0網段的。

而192.168.1.2 255.255.0.0是屬於192.168.0.0網段。

二、如何根據掩碼來確定ip地址網段

上面我們已經舉例瞭解了子網掩碼的作用,接下來我們再來了解如何確定子網掩碼和判斷ip地址的網段。

通常我們在劃分vlan的時候會使用以下例子:

例1:

創建vlan1:ip地址:192.168.1.1 子網掩碼:255.255.255.0

創建vlan2: ip地址:192.168.2.1 子網掩碼:255.255.255.0

那麼他們是不是在同一個網段呢?平時配置ip地址較多的朋友,可以直觀的判斷,他們並不是屬於同一個網段,那麼如何計算呢?要想判斷兩個ip地址是不是在同一個網段,只需將ip地址與子網掩碼做與運算,如果得出的結果一樣,則這兩個ip地址是同一個子網當中。

詳細計算

將ip地址192.168.1.1轉換為二進制

11000000 10101000 00000001 00000001

將子網掩碼255.255.255.0轉換成二進制

11111111.11111111.11111111.00000000

然後將兩者相“與(and)"運算:

11000000 10101000 00000001 00000001

11111111.11111111.11111111.00000000

然後得到:

11000000 10101000 00000001 00000000

轉換成網絡號就是:192.168.1.0

將ip地址192.168.2.1轉換為二進制

11000000 10101000 00000010 00000001

將子網掩碼255.255.255.0轉換成二進制

11111111.11111111.11111111.00000000

然後將兩者相“與(and)"運算:

11000000 10101000 00000010 00000001

11111111.11111111.11111111.00000000

然後得到:

11000000 10101000 00000010 00000000

轉換成網絡號就是:192.168.2.0

很明顯,二者的結果是不一樣的,一個是網段192.168.1.0,一個是網段192.168.2.0,所以不是一個網段。

例2

ip地址1:192.168.1.1 子網掩碼:255.255.252.0

ip地址2:192.168.2.1 子網掩碼:255.255.252.0

很明顯,我們這個和上面例1的ip地址是一樣的,只是子網掩碼不一樣,如果不看子網掩碼,首先可能就判斷他們不是同一個網段。

這裡面和上面例1中唯一變化就是子網掩碼從255.255.255.0換成了255.255.252.0了,那我們來看下,他們是否屬於同一個網段。

詳細計算

將ip地址192.168.1.1轉換為二進制

11000000 10101000 00000001 00000001

將子網掩碼255.255.252.0轉換成二進制

11111111.11111111.11111100.00000000

然後將兩者相“與(and)"運算:

11000000 10101000 00000001 00000001

11111111.11111111.11111100.00000000

然後得到:

11000000 10101000 00000000 00000000

轉換成網絡號就是:192.168.0.0

將ip地址192.168.2.1轉換為二進制

11000000 10101000 00000010 00000001

將子網掩碼255.255.252.0轉換成二進制

11111111.11111111.11111100.00000000

然後將兩者相“與(and)"運算:

11000000 10101000 00000010 00000001

11111111.11111111.11111100.00000000

然後得到:

11000000 10101000 00000000 00000000

轉換成網絡號就是:192.168.0.0

很明顯,二者的結果是一樣的,都是屬於192.168.0.0網段,所以他們是同屬於一個網段。

當然,如果對子網較熟了就不需要經過這些運算了,大部分的網段可以通過分析子網掩碼與ip地址就可以判斷出來是否屬於網一網段,但前提是你需要熟悉網段的原理與運算的方法。

三、如何根據ip地址推算子網掩碼

確定ip地址子網掩碼

大部分的情況下,我們網絡中只要不超過254臺主機的的話,子網掩碼都可以設置成255.255.255.0。那麼超過了254臺主機的話怎麼辦呢?

可以劃分vlan,也可以設置成一個大網段,劃分vlan我們就不說了,上面有例子,設置成一個大網段就有一個難點,如何確定這個大網段裡面的子網掩碼呢?

例如

假設監控網絡中有600個點位,我們現在也不想把它劃分vlan(實際項目中大部分是會劃分vlan的),假設只想用一個大網段把這600個點位分配ip地址,如何設置ip地址,如何確實子網掩碼?

分析:首先我們知道600個點位,可以使用3個254個ip地址段來分配。

可以使用

ip段一:192.168.0.1——192.168.0.254

ip段二:192.168.1.1——192.168.1.254

ip段三:192.168.2.1——192.168.2.254

每個網段有254個ip地址,完全夠600個點位用的。

那麼問題來了,如果要使這三個ip段在同一個網段內,那麼這個大網段共同的子網掩碼是多少呢?

我們來分析下:

將ip地址192.168.0.1轉換為二進制

11000000 10101000 00000000 00000001

將ip地址192.168.1.1轉換為二進制

11000000 10101000 00000001 00000001

將ip地址192.168.2.1轉換為二進制

11000000 10101000 00000010 00000001

轉換成了二進制,可以看得出,三個ip段的二進制前面22位的是不變的,那麼可以將他們表示成:

ip段一:192.168.0.1/22

ip段二:192.168.1.1/22

ip段三:192.168.2.1/22

這種192.168.2.x/22形式的ip地址相信大家平時都見過,就是已經告訴了子網掩碼了。

也就是說他們共同的子網掩碼二進制前面22個都是1。

11111111 11111111 11111100 00000000

轉換成十進制,那就是255.255.252.0,所以他們共同的子網掩碼就是255.255.252.0。

當然在實際項目中,與網絡接觸較多的弱電人不需要通過一系列的換算,直接可以通過簡單的判斷估算出來這個大網段的子網掩碼,因此,今天弱電君是講原理,方便大家理解,所以所有的換算都是通過運算出來的。


分享到:


相關文章: