Мой шаблон ниже работает нормально, но если «inet6» задан по умолчанию и выше «inet» в ifconfig, тогда этот шаблон возвращает Никто. Я не уверен, почему он все еще пытается сопоставить inet6.
ifconfig_output = """
en0: flags=8863 mtu 1500
ether 00:1a:2b:3c:4d:5e
inet6 fe80:
inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
"""
# Regex pattern to capture MAC, IPv4 (inet), and IPv6 (inet6) addresses
pattern = re.compile(r'ether (?P[a-f0-9:]+).*?'
r'(?:\s+inet (?P[\d\.]+) '
r'netmask (?P0x[a-f0-9]+) '
r'broadcast (?P
[.a-f0-9:]+))?.*?')
print(pattern.search(ifconfig_output).groupdict())
Подробнее здесь: https://stackoverflow.com/questions/791 ... h-ifconfig
Мобильная версия