其他问题不太一样。
我正在寻找的是一个 Python 函数,它返回系统上所有 IP 地址的列表,模拟以下行为:
ifconfig | grep 'inet addr:' | grep -v 127.0.0.1 | cut -d: -f2 | awk '{ print $1}'
其他问题不太一样。
我正在寻找的是一个 Python 函数,它返回系统上所有 IP 地址的列表,模拟以下行为:
ifconfig | grep 'inet addr:' | grep -v 127.0.0.1 | cut -d: -f2 | awk '{ print $1}'
您可以使用subprocess
python 模块来实现这一点。
import subprocess
cmd = "ifconfig | grep 'inet addr:' | grep -v 127.0.0.1 | cut -d: -f2 | awk '{ print $1}'"
co = subprocess.Popen([cmd], shell = True, stdout = subprocess.PIPE)
ips = co.stdout.read().strip().split("\n")
那应该给你一个IP地址列表。
PS:最好改用以下命令
ifconfig | grep inet | grep -v inet6 | grep -v 127.0.0.1 | awk '{print $2}' | cut -d\: -f2 | cut -d\ -f1
这将排除 IPV6 地址(如果有)。
纯 Python 方式
如果您希望完全在 Python 中执行此操作,请查看netifaces python 模块。