Python 3.3+socketфункция
socket.if_nametoindex()
сетевые интерфейсы
Возвращает числовой индекс сетевого интерфейса по его имени, например 'lo' → 1.
Синтаксис
socket.if_nametoindex(if_name) -> int
Индексы назначает ОС, и после перезагрузки или подключения адаптера они меняются — храните имя, а индекс получайте этой функцией при запуске. Несуществующее имя поднимает OSError, а не возвращает 0. На Windows имя ожидается в форме 'ethernet_32770', которую выдаёт if_nameindex().
Примеры
import socket
index, name = socket.if_nameindex()[0]
print(socket.if_nametoindex(name) == index) # → True
socket.if_nametoindex('nosuch0') # → OSError: no interface with this name
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности