子網掩碼是用來判斷任意兩台計算機的ip位址是否屬於同一子網路的根據。子網掩碼與ip位址結構相同,是32位二進位制數,其中網路號部分全為「1」和主機號部分全為「0」。利用子網掩碼可以判斷兩台主機是否中同一子網中。若兩台主機的ip位址分別與它們的子網掩碼相「與」後的結果相同,則說明這兩台主機在同一子網中。
示例:i p 位址1 192.168.0.1
子網掩碼 255.255.255.0
轉化為二進位制進行運算:
i p 位址 11010000.10101000.00000000.00000001
子網掩碼 11111111.11111111.11111111.00000000
and運算11000000.10101000.00000000.00000000
轉化為十進位制後為:192.168.0.0
i p 位址2 192.168.0.254
子網掩碼 255.255.255.0
轉化為二進位制進行運算:
i p 位址 11010000.10101000.00000000.11111110
子網掩碼 11111111.11111111.11111111.00000000
and運算11000000.10101000.00000000.00000000
轉化為十進位制後為:192.168.0.0
通過以上對兩台計算機ip位址與子網掩碼的and運算後,我們可以看到它運算結果是一樣的。均為192.168.0.0,所以這二台計算機可視為是同一子網路。
/** 功能: 判斷兩台計算機ip位址是同一子網路。
* 輸入引數:
* string mask: 子網掩碼,格式:「255.255.255.0」;
* string ip1: 計算機1的ip位址,格式:「192.168.0.254」;
* string ip2: 計算機2的ip位址,格式:「192.168.0.1」;
* 返回值:
* 0:ip1與ip2屬於同一子網路;
* 1:ip位址或子網掩碼格式非法;
* 2:ip1與ip2不屬於同一子網路
*/public int checknetsegment(string mask, string ip1, string ip2)
輸入描述:輸入子網掩碼、兩個ip位址
輸出描述:
得到計算結果
示例1思路:通過.分割ip和子網掩碼的每段,分別進行判斷輸入255.255.255.0 192.168.224.256 192.168.10.4輸出1
1、合法:0-255
2、網段:方法如題所述
#coding=utf-8
defchecknetsegment
(mask,ip1,ip2)
: arr1=ip1.split(
'.')
arr2=ip2.split(
'.')
arr=mask.split(
'.')
count=
0 flag=
0#判斷ip和子網掩碼是否非法
for i in
range(4
):if arr1[i]
>
'255'
or arr1[i]
<
'0':
count+=
1if arr2[i]
>
'255'
or arr2[i]
<
'0':
count+=
1if arr[i]
=='255'
or arr[i]
=='0'
: flag=
1else
: flag=
2if count!=
0or flag>1:
return
1 s1=
'' s2=
''#兩個ip屬於同一子網
for i in
range(4
):s1+=
str(
int(arr1[i])&
int(arr[i]))
+'.'
s2+=
str(
int(arr2[i])&
int(arr[i]))
+'.'
s1=s1[
:len
(s1)-1
] s2=s2[
:len
(s2)-1
]if s1==s2:
return
0else
:return
2if __name__==
'__main__'
: ip1 =
input()
ip2 =
input()
mask =
input()
count=checknetsegment(mask,ip1,ip2)
print
(count)
判斷兩個IP是否處於同一子網(網段)
a ip 202.194.128.9 b ip 202.194.128.14 子網掩碼 255.255.255.01.把a和b的位址轉換為二進位制的 a 1100 1010.1100 0010.1000 0000.0000 1001 b 1100 1010.1100 0010.1000 0000.0...
判斷兩個IP時候屬於同乙個子網(華為機試)
給定兩個ip和乙個子網掩碼,判斷兩個ip是否屬於同一子網。輸出0代表不是同一子網,輸出1代表是同一子網。同時輸出第乙個ip與子網掩碼相與的結果。保證輸入資料合法 子網掩碼 11111111.11111111.11111111.00000000 and運算 11010000.10101000.0000...
如何判斷兩個IP屬於同乙個網路
ip位址 網路位址 主機位址 又稱 主機號和網路號組成 ip位址是乙個 4 8bit 1位元組 由 0 1 組成的數字串 ip4協議 子網掩碼又叫網路掩碼 位址掩碼 子網路遮罩,是乙個 4 8bit 1位元組 由 0 1 組成的數字串 它的作用是遮蔽 遮住 ip位址的一部分以劃分成網路位址和主機位址...