久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

用python查找統(tǒng)一局域網(wǎng)下ip對應(yīng)的mac地址

瀏覽:77日期:2022-06-29 18:47:38

MAC地址也叫物理地址、硬件地址,由網(wǎng)絡(luò)設(shè)備制造商生產(chǎn)時燒錄在網(wǎng)卡(Network lnterface Card)的EPROM(一種閃存芯片,通??梢酝ㄟ^程序擦寫)。IP地址與MAC地址在計算機里都是以二進制表示的,IP地址是32位的,而MAC地址則是48位的 [3] 。

MAC地址的長度為48位(6個字節(jié)),通常表示為12個16進制數(shù),如:00-16-EA-AE-3C-40就是一個MAC地址,其中前3個字節(jié),16進制數(shù)00-16-EA代表網(wǎng)絡(luò)硬件制造商的編號,它由IEEE(電氣與電子工程師協(xié)會)分配,而后3個字節(jié),16進制數(shù)AE-3C-40代表該制造商所制造的某個網(wǎng)絡(luò)產(chǎn)品(如網(wǎng)卡)的系列號。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地說,MAC地址就如同身份證上的身份證號碼,具有唯一性

我們可以編寫如下python代碼來查詢

# arp掃描,定義一個函數(shù),發(fā)送兩層的arp包,請求同一局域網(wǎng)內(nèi)其他IP地址的mac地址。from scapy.all import *import uuid,socket# 獲取本機的IP地址。def get_ip_address(): # 獲取本機電腦名 myname = socket.getfqdn(socket.gethostname()) # 獲取本機ip myaddr = socket.gethostbyname(myname) return myaddr# 獲取本機的mac地址。def get_mac_address(): mac = uuid.UUID(int=uuid.getnode()).hex[-12:] return ':'.join([mac[e:e + 2] for e in range(0, 11, 2)])# arp掃描,獲取統(tǒng)一局域網(wǎng)下的IP地址的mac地址。def arp_scan(ip): # 獲取本機的mac地址。 local_mac = get_mac_address() # 獲取本機的ip地址。 local_ip = get_ip_address() # print(type(local_ip),type(local_mac)) # 分隔IP地址。 ip_split = ip.split(’.’) ip_list = [] # 進行重新定義ip地址段。 for i in range(1,25): ip_list.append(ip_split[0] + ’.’ + ip_split[1] + ’.’ + ip_split[2] + ’.’ + str(i)) print(ip_list,local_ip,local_mac) # arp_result = srp(Ether(src = local_mac,dst = ’ff:ff:ff:ff:ff:ff’)/ARP(op = 1,hw = ’00:00:00:00:00:00’,psrc = local_ip,pdst = ip_list),timeout = 1,verbose = False) # 構(gòu)造二層包,寫入以太網(wǎng)層,這里每一層包需要填什么字段,可以取scapy界面看一下。 arp_result = srp(Ether(src=local_mac, dst=’ff:ff:ff:ff:ff:ff’)/ARP(op=1, hwsrc=local_mac, hwdst=’00:00:00:00:00:00’,psrc=local_ip, pdst=ip_list), timeout=1,verbose=False) # 進行解包操作。 mac_result = arp_result[0].res mac_list = [] # 找到對應(yīng)的IP地址和MAC地址。 for i in range(len(mac_result)): ip = mac_result[i][1][1].fields[’psrc’] mac = mac_result[i][1][1].fields[’hwsrc’] mac_list.append([ip,mac]) return mac_listif __name__ == '__main__': ip = ’192.168.156.1’ mac_list = arp_scan(ip) for i in range(len(mac_list)): print('IP地址:',mac_list[i][0],’MAC地址:’,mac_list[i][1])

以上就是用python查找統(tǒng)一局域網(wǎng)下ip對應(yīng)的mac地址的詳細(xì)內(nèi)容,更多關(guān)于python 查找mac地址的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 章丘市| 如东县| 综艺| 兴海县| 双桥区| 张掖市| 延津县| 永德县| 方山县| 平江县| 嘉善县| 大化| 河南省| 龙江县| 深泽县| 天台县| 丰镇市| 增城市| 呼伦贝尔市| 巴南区| 博客| 缙云县| 临汾市| 石阡县| 镇远县| 龙里县| 岢岚县| 柯坪县| 汕尾市| 综艺| 灵台县| 万源市| 宁波市| 岳阳县| 吉安县| 新龙县| 东台市| 湘阴县| 祥云县| 英德市| 洮南市|