我试图创建一个正则表达式模式来匹配设备名,接口的ip地址和mac地址。
我有这三场比赛:
device name = r'([^\s]+):\s'
mac address = r'ether (\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)'
ipv4 = r'inet\s+([^\s]+)'
这是ifconfig的输出
eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 111.111.111.111 netmask 255.255.255.0 broadcast 111.111.111.111
ether 1a:2b:3c:4d:5e:6f txqueuelen 1000 (Ethernet)
RX packets 149694 bytes 162604639 (155.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 98703 bytes 13286845 (12.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 38 bytes 3424 (3.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 38 bytes 3424 (3.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我试过在两者之间使用.*?
,但没有成功。我知道环回设备没有mac,所以想知道是否可以用mac做一个不。或者只有两个模式,如果它不能找到所有三个,使用第二个模式来找到设备名和ip地址。如果你也能提供一个python 3的实现,那将非常有帮助。
3条答案
按热度按时间hc8w905p1#
您可以使用
的IP地址
如果只需要 “inet” 条目,请使用
MAC地址
输出量
jmp7cifd2#
这是一种非常复杂的获取设备名称、私有ip地址和当前网络接口的mac地址的方法。
而不是这个使用特定的方式来实现你的输出.
对于设备名称,您可以使用此python脚本:
对于私有IP地址,使用这个简单的Python脚本:
要获取当前网络接口的MAC地址,您可以使用以下简单的Python脚本:
我希望它有帮助!:)
vyu0f0g13#
您可以尝试按
\n\n
将文本拆分为单独的组,然后单独搜索信息:图纸: