2010-08-02 6 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

4

Модуль netifaces должен это сделать.

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

Большое спасибо, к сожалению, я хочу оставаться очень простым в этом скрипте, который должен работать в разных условиях. Поэтому я искал что-то, что не требовало бы easy_install. Но все же, он отлично работает, спасибо снова. – jaes

Смежные вопросы