我希望在将接口传递给函数时从接口删除IP,在此示例中传入eth0。
我正在考虑调用bash来实现这个命令:
ip addr show dev eth0 | grep inet | (while read a b c; do del $b; done)
我将如何以最好的pythonic意义os.system
,subprocess.popen
来解决这个问题?有没有其他方法可以解决这个问题?
答案 0 :(得分:1)
要查找IP地址,您可以使用python模块netifaces
,
但对他们来说,无论如何你都需要运行ip
。
将脚本直接翻译为Python如下所示:
for line in subprocess.Popen(
["ip", "addr", "show", "dev", "eth0"],
stdout=subprocess.PIPE).communicate()[0].splitlines():
if 'inet' in line:
subprocess.Popen(["ip", "addr", "del", line.split()[1], "dev", "eth0"])
当然,您需要添加不同的错误检查和异常处理,以使代码稳定。