Знаете ли вы, как я мог получить один из IPv6-адресов одного из моих интерфейсов в python2.6. Я попробовал что-то с модулем сокета, который ни к чему меня не приведет.

Спасибо.

6
jaes 2 Авг 2010 в 18:53

3 ответа

Лучший ответ

Я обязательно пойду с этим, это может работать хорошо, даже если я нахожу это действительно безобразным.

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]

Еще раз спасибо за помощь.

-3
jaes 2 Авг 2010 в 15:29

Вы можете просто запустить ifconfig с вызовом подпроцесса. * И проанализировать вывод.

0
jvdneste 2 Авг 2010 в 15:00

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

import netifaces
addrs = netifaces.ifaddresses('eth0')
addrs[netifaces.AF_INET6][0]['addr']
5
alastair 2 Май 2014 в 15:35