【发布时间】:2020-07-12 00:48:38
【问题描述】:
我只想从ifconfig的命令输出中找到IP地址:
import os
ip = os.system("ifconfig eth0")
然后如何从输出中找到192.168.1.10 并将其打印到标准输出?
【问题讨论】:
标签: python python-3.x
我只想从ifconfig的命令输出中找到IP地址:
import os
ip = os.system("ifconfig eth0")
然后如何从输出中找到192.168.1.10 并将其打印到标准输出?
【问题讨论】:
标签: python python-3.x
ip=os.system("ifconfig eth0|grep -w 'inet'|awk '{print $2}'")
此解决方案使用纯 shell 命令。 grep 搜索单词 inet 并打印该行,然后 awk 过滤第二个单词,这是 IP
【讨论】:
或
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 位,用点分隔。
【讨论】: