判斷兩個IP位址是否在同乙個網段及子網掩碼設定

2021-09-25 08:04:19 字數 3786 閱讀 7612

一、什麼是子網掩碼?

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

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

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

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

在實際專案中,我們通常會遇到這樣的ip位址。

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

那麼對於下面這樣的呢?

這兩個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:那麼他們是不是在同乙個網段呢?平時配置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

很明顯,我們這個和上面例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位址,如何確定子網掩碼?

可以使用

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

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

11111111 11111111 11111100 00000000

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

怎麼樣判斷兩個IP位址是否在同乙個網段

怎麼樣判斷兩個ip位址是否在同乙個網段 方法1.通過自身的ip與自身掩碼算出網路位址x 2.通過目的ip與自身掩碼算出目的地的網路位址y 3.如果這兩個網路一樣 x y 則表示目的地與自身在乙個網路內 4.如果兩個網路不一樣 x不等於y 則表示目的地與自身不在乙個網路內 舉個例子1 a 192.16...

如何判斷兩個IP位址是不是在同乙個網段

如何判斷兩個ip位址是不是在同乙個網段 要判斷兩個ip位址是不是在同乙個網段,就將它們的ip位址分別與子網掩碼做與運算,得到的結果一網路號,如果網路號相同,就在同一子網,否則,不在同一子網。例 假定選擇了子網掩碼255.255.254.0,現在分別將上述兩個ip位址分別與掩碼做與運算,如下所示 ww...

如何判斷兩個IP屬於同乙個網路

ip位址 網路位址 主機位址 又稱 主機號和網路號組成 ip位址是乙個 4 8bit 1位元組 由 0 1 組成的數字串 ip4協議 子網掩碼又叫網路掩碼 位址掩碼 子網路遮罩,是乙個 4 8bit 1位元組 由 0 1 組成的數字串 它的作用是遮蔽 遮住 ip位址的一部分以劃分成網路位址和主機位址...