统计文件里的有线,无线网卡Mac地址,并存入excel
结果:
名字 | 有线 | 无线 |
---|---|---|
a | 5A-87-5B-2C-21-A4 | 5D-87-3E-21-A4-1C |
文件案例:
目录:/root/txt/
文件:a.txt (文件名及名字)
Windows IP 配置
主机名 . . . . . . . . . . . . . : LAPTOP-7T69THJC
主 DNS 后缀 . . . . . . . . . . . :
节点类型 . . . . . . . . . . . . : 混合
IP 路由已启用 . . . . . . . . . . : 否
WINS 代理已启用 . . . . . . . . . : 否
以太网适配器 以太网 3:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Realtek PCIe GbE Family Controller #2
物理地址. . . . . . . . . . . . . : 5A-87-5B-2C-21-A4
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
无线局域网适配器 本地连接* 1:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter
物理地址. . . . . . . . . . . . . : 5B-87-9C-21-A4-1D
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
无线局域网适配器 本地连接* 2:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter #2
物理地址. . . . . . . . . . . . . : 5E-87-9E-21-A4-1C
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
以太网适配器 VMware Network Adapter VMnet1:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1
物理地址. . . . . . . . . . . . . : 00-50-56-C0-00-01
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::7854:bcf:f690:557a%12(首选)
自动配置 IPv4 地址 . . . . . . . : 169.254.85.122(首选)
子网掩码 . . . . . . . . . . . . : 255.255.0.0
默认网关. . . . . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : 721440854
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-26-F3-37-F9-5E-87-9F-2C-21-A4
DNS 服务器 . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
TCPIP 上的 NetBIOS . . . . . . . : 已启用
以太网适配器 VMware Network Adapter VMnet8:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
物理地址. . . . . . . . . . . . . : 00-50-56-C0-00-08
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::4d45:5289:7549:6e9%9(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.11.2(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : 738218070
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-26-F3-37-F9-5A-87-9B-2C-21-A4
DNS 服务器 . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
TCPIP 上的 NetBIOS . . . . . . . : 已启用
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Intel(R) Wireless-AC 9560 160MHz
物理地址. . . . . . . . . . . . . : 5D-87-3E-21-A4-1C
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::6dd1:30fe:400e:f7d6%18(首选)
IPv4 地址 . . . . . . . . . . . . : 10.2.0.22(首选)
子网掩码 . . . . . . . . . . . . : 255.255.252.0
获得租约的时间 . . . . . . . . . : 2022年8月4日 9:36:28
租约过期的时间 . . . . . . . . . : 2022年8月4日 17:50:52
默认网关. . . . . . . . . . . . . : 10.2.3.254
DHCP 服务器 . . . . . . . . . . . : 10.2.3.254
DHCPv6 IAID . . . . . . . . . . . : 190613404
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-26-F3-37-F9-5D-87-9E-2F-21-A4
DNS 服务器 . . . . . . . . . . . : 114.114.114.114
222.246.129.80
TCPIP 上的 NetBIOS . . . . . . . : 已启用
先用csv写个简单的,excel同理,
基于以下假设:
一、你有很多这样的主机信息需要截取MAC地址
二、每台主机都最多只有真实的有线网卡与无线网卡各一个
三、所有主机都是中文系统、格式也与例子中相似
filelist = ['a.txt']
maclist = []
for file in filelist:
with open(file,encoding='utf-8') as f:
p = f.readlines()
# 第一步:分块,使用数据结构为嵌套字典
i = 0
nic = {}
while i<len(p):
if "适配器" in p[i]: # 找到网卡信息,进行分块
j = i+1
while j<len(p) and "适配器" not in p[j]:
temp = p[j].split(':')
if len(temp)>1: # 去除空行
nic.setdefault(p[i].strip(),dict())[temp[0].strip('. ')] = temp[1].strip()
j += 1
i = j-1
i += 1
# 第二步:去除虚拟网卡,并把真实的有线与无线网卡MAC地址截取出来
temp = [file,'','']
for key, value in nic.items():
if "Virtual" not in value['描述']:
if "无线" in key:
temp[2] = value['物理地址']
else:
temp[1] = value['物理地址']
maclist.append(temp)
# 第三步:将所有的MAC地址(二维列表)写入csv
import csv
with open('mac.csv','w',newline='') as f:
w = csv.writer(f)
w.writerow(['名字','有线','无线'])
w.writerows(maclist)
不知道你这个问题是否已经解决, 如果还没有解决的话: