已发相关文章请参考Python获取本机所有网卡的MAC地址
本文代码使用ARP协议获取局域网内所有计算机的IP地址与MAC地址,思路是使用系统命令arp获取ARP表并生成文本文件,然后从文件中读取和解析信息。
import os
from socket import gethostbyname, gethostname
# 获取本机IP地址
host = gethostbyname(gethostname())
# 获取ARP表
os.system('arp -a > temp.txt')
with open('temp.txt') as fp:
for line in fp:
line = line.split()[:2]
if line and\
line[0].startswith(host[:4]) and\
(not line[0].endswith('255')):
print(':'.join(line))
运行后会在当前文件夹中生成文本文件temp.txt,其中的内容如图所示:
本文代码提取的结果如图所示: