У меня на компьютере несколько сетевых интерфейсных плат, каждая со своим IP-адресом.
Когда я использую gethostbyname(gethostname()) из Python (встроенного) модуля socket, он вернет только один из них. Как мне получить других?
gethostbyname(gethostname())
socket
Вы можете сделать это довольно легко, как это:
import netifaces for interface in netifaces.interfaces(): print netifaces.ifaddresses(interface)
Для получения дополнительной информации вы можете найти документацию netifaces .
Вы должны напрямую получить все настроенные IP-адреса IP, например, запустив ifconfig и проанализировав его вывод (также можно сделать то, что ifconfig делает напрямую в Python , посмотреть, как это делается в C ). Если вам нужны имена хостов, используйте gethostbyaddr.