Проблема с регулярным выражением с ifconfigPython

Программы на Python
Ответить
Anonymous
 Проблема с регулярным выражением с ifconfig

Сообщение Anonymous »

Я хочу проанализировать ifconfig, чтобы получить ip_address, сетевую маску и широковещательную рассылку. и это необязательные поля. Если он присутствует, он должен вернуться, но если нет, он должен вернуть None.
Мой шаблон ниже работает нормально, но если «inet6» задан по умолчанию и выше «inet» в ifconfig, тогда этот шаблон возвращает Никто. Я не уверен, почему он все еще пытается сопоставить inet6.
ifconfig_output = """
en0: flags=8863 mtu 1500
ether 00:1a:2b:3c:4d:5e
inet6 fe80::1a2b:3c4d:5e6f:7g8h prefixlen 64 secured scopeid 0x4
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»