Как мне разобрать и найти что-то из вывода команды в Python - PullRequest
0 голосов
/ 12 июля 2020

Я хотел бы найти только IP-адрес из вывода команды ifconfig:

import os

ip = os.system("ifconfig eth0")

Как мне затем найти 192.168.1.10 из вывода и распечатать его на стандартный вывод?

Ответы [ 2 ]

0 голосов
/ 28 июля 2020

или

import subprocess

import re

ip=subprocess.Popen(['ifconfig', 'eth0'], stdout=subprocess.PIPE).communicate()[0]

oip=re.search(r"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", str(ip))

print(oip.group())

Здесь к команде ifconfig применяются регулярные выражения. Ищется первое вхождение строки, которая содержит 4 числа, каждое из которых состоит максимум из 3 цифр, разделенных точкой.

0 голосов
/ 28 июля 2020
ip=os.system("ifconfig eth0|grep -w 'inet'|awk '{print $2}'")

Это решение с чистыми командами оболочки. Grep ищет слово inet и печатает строку, затем awk фильтрует второе слово, и это IP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...