Как определить все мои IP-адреса, если у меня несколько сетевых адаптеров? - PullRequest
34 голосов
/ 07 ноября 2008

У меня на компьютере несколько сетевых интерфейсных плат, каждая со своим IP-адресом.

Когда я использую gethostbyname(gethostname()) из Python (встроенного) модуля socket, он вернет только один из них. Как мне получить других?

Ответы [ 12 ]

0 голосов
/ 03 марта 2016

Вы можете сделать это довольно легко, как это:

import netifaces

for interface in netifaces.interfaces():
    print netifaces.ifaddresses(interface)

Для получения дополнительной информации вы можете найти документацию netifaces .

0 голосов
/ 07 ноября 2008

Вы должны напрямую получить все настроенные IP-адреса IP, например, запустив ifconfig и проанализировав его вывод (также можно сделать то, что ifconfig делает напрямую в Python , посмотреть, как это делается в C ). Если вам нужны имена хостов, используйте gethostbyaddr.

...