从接口删除IP?

时间:2014-01-13 12:44:06

标签: python

我希望在将接口传递给函数时从接口删除IP,在此示例中传入eth0。

我正在考虑调用bash来实现这个命令:

 ip addr show dev eth0 | grep inet | (while read a b c; do del $b; done)

我将如何以最好的pythonic意义os.systemsubprocess.popen来解决这个问题?有没有其他方法可以解决这个问题?

1 个答案:

答案 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"])

当然,您需要添加不同的错误检查和异常处理,以使代码稳定。