2010-08-02 179 views

回答

-4

我一定会跟这个一起工作,即使我发现这真的很难看,它应该会很好。

step1 = Popen(['ip','addr','show','br0'],stdout=PIPE) 
step2 = Popen(['grep','inet6'],stdout=PIPE,stdin=step1.stdout) 
step3 = Popen(['sed','-e','/fe80/d','-e','s/ *inet6 *//g','-e','s/\/64.*$//g'],stdout=PIPE,stdin=step2.stdout) 
step4 = Popen(['tail','-n1'],stdout=PIPE,stdin=step3.stdout) 
step4.communicate()[0] 

再次感谢您的帮助。

0

你可以简单地使用子进程调用'ifconfig'来调用并解析输出。

+0

我想到了这一点,并且实际上已经准备好了(并且很长的)命令来让我的Ipv6格式化。但它确实看起来很丑。它必须存在一个更有效的方式来做到这一点。 – jaes 2010-08-02 15:07:46

4

netifaces模块应该这样做。

import netifaces 
addrs = netifaces.ifaddresses('eth0') 
addrs[netifaces.AF_INET6][0]['addr'] 
+0

非常感谢,很遗憾,我希望在这个应该在很多不同环境下运行的脚本中保持非常简单。所以我在寻找一些不需要easy_install的东西。 但是,它仍然很好,再次感谢。 – jaes 2010-08-02 15:18:57