Вы можете использовать модуль netifaces . Просто введите:
pip install netifaces
в командной оболочке и он установит себя по умолчанию для установки на Python.
Затем вы можете использовать его следующим образом:
from netifaces import interfaces, ifaddresses, AF_INET
for ifaceName in interfaces():
addresses = [i['addr'] for i in ifaddresses(ifaceName).setdefault(AF_INET, [{'addr':'No IP addr'}] )]
print '%s: %s' % (ifaceName, ', '.join(addresses))
На моем компьютере он напечатан:
{45639BDC-1050-46E0-9BE9-075C30DE1FBC}: 192.168.0.100 {D43A468B-F3AE-4BF9-9391-4863A4500583}: 10.5.9.207
Автор этого модуля утверждает, что он должен работать в Windows, UNIX и Mac OS X.