#!/usr/bin/python
# -*- coding:utf-8 -*-
"""
@Project : MyTest_py3
@File : ipsunetroute.py
@Author : yum
@Date : 2021/8/20 16:48
判斷兩個ip是否在同一網(wǎng)段蒲凶。
"""
class ipSunetRoute(object):
##將IP地址轉(zhuǎn)為二進制
def ipToBinary(self, ip):
'''ip address transformat into binary
Argv:
ip: ip address
Return:
binary
'''
ip_num = ip.split('.')
x = 0
##IP地址是點分十進制桶蝎,例如:192.168.1.33邀泉,共32bit
##第1節(jié)(192)向前移24位买窟,第2節(jié)(168)向前移16位
##第3節(jié)(1)向遷移8位唯灵,第4節(jié)(33)不動
##然后進行或運算贾铝,得出數(shù)據(jù)
for i in range(len(ip_num)):
num = int(ip_num[i]) << (24 - i * 8)
x = x | num
brnary = str(bin(x).replace('0b', ''))
return brnary
##將子網(wǎng)掩碼轉(zhuǎn)為二進制
def maskToBinary(self, mask):
'''netmask change, example: 24 or 255.255.255.0 change binary
Argv:
mask: netmask, example:24 or 255.255.255.0
Return:
binary
'''
mask_list = str(mask).split('.')
##子網(wǎng)掩碼有兩種表現(xiàn)形式,例如:/24或255.255.255.0
if len(mask_list) == 1:
##生成一個32個元素均是0的列表
binary32 = []
for i in range(32):
binary32.append('0')
##多少位子網(wǎng)掩碼就是連續(xù)多少個1
for i in range(int(mask)):
binary32[i] = '1'
binary = ''.join(binary32)
##輸入的子網(wǎng)掩碼是255.255.255.0這種點分十進制格式
elif len(mask_list) == 4:
binary = self.ipToBinary(mask)
return binary
##判斷IP地址是否屬于這個網(wǎng)段
def ipInSubnet(self, ip, subnet):
'''
Argv:
ip: ip address,example:1.1.1.1
subnet: subnet,example:1.1.1.0/24,or 1.1.1.0/255.255.255.0
Return:
False or True
'''
subnet_list = subnet.split('/')
networt_add = subnet_list[0]
network_mask = subnet_list[1]
##原來的得出的二進制數(shù)據(jù)類型是str埠帕,轉(zhuǎn)換數(shù)據(jù)類型
ip_num = int(self.ipToBinary(ip), 2)
subnet_num = int(self.ipToBinary(networt_add), 2)
mask_bin = int(self.maskToBinary(network_mask), 2)
##IP和掩碼與運算后比較
if (ip_num & mask_bin) == (subnet_num & mask_bin):
print('True')
return True
else:
print('False')
return False
if __name__ == "__main__":
ipr = ipSunetRoute()
ipr.ipInSubnet('11.22.163.215', '11.24.163.215/20')
2021-10-25 判斷兩個ip是否在同一網(wǎng)段团赏。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門庶橱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贪惹,你說我怎么就攤上這事悬包。” “怎么了馍乙?”我有些...
- 文/不壞的土叔 我叫張陵布近,是天一觀的道長。 經(jīng)常有香客問我丝格,道長撑瞧,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任显蝌,我火速辦了婚禮预伺,結(jié)果婚禮上订咸,老公的妹妹穿的比我還像新娘。我一直安慰自己酬诀,他們只是感情好脏嚷,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瞒御,像睡著了一般父叙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肴裙,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼征炼!你這毒婦竟也來了析既?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站诲泌,受9級特大地震影響盲赊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜敷扫,卻給世界環(huán)境...
- 文/蒙蒙 一哀蘑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦绘迁、人聲如沸合溺。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽棠赛。三九已至,卻和暖如春将硝,著一層夾襖步出監(jiān)牢的瞬間恭朗,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 一.IP地址分類 D和E不對民用組織開放沧踏,所以我們能使用IP地址的只有ABC三類。 A巾钉、B翘狱、C三類IP地址的特征:...
- 1 ip地址的格式:...潦匈,并且值不能超過255,使用正則表達式 2 掩碼除了要滿足ip地址的格式外赚导,轉(zhuǎn)化為2進制...
- 描述:VirtualBox+GNS3創(chuàng)建虛擬機茬缩,模擬pc之間通信。 目標:讓不在同一網(wǎng)段的PC2與PC3之間可以互...
- 1.打開VMware軟件吼旧,開啟要設置的虛擬機凰锡,用root用戶登錄; 2.點擊VMware軟件菜單欄上“虛擬機”—>...
- 環(huán)境: 主機 Windows Server 2012VMware 14.1.3 build-9474260虛擬機 ...