Сообщить об ошибке.

Функции if_nametoindex() и if_indextoname модуля socket в Python

Получение номера сетевого интерфейса по его имени и обратная операция

Синтаксис:

import socket

num = socket.if_nametoindex(if_name)
name = socket.if_indextoname(if_index)

Параметры:

  • if_name - имя сетевого интерфейса,
  • if_index - номер сетевого интерфейса.

Возвращаемое значение:

  1. Порядковый номер сетевого интерфейса,
  2. Имя сетевого интерфейса.

Описание:

Функция socket.if_nametoindex() возвращает порядковый номер сетевого интерфейса, соответствующий его имени if_name.

Если сетевой интерфейс с данным именем не существует, то возникает ошибка OSError.

Функция socket.if_indextoname() возвращает имя сетевого интерфейса, соответствующее его порядковому номеру if_index.

Если сетевой интерфейс с данным индексом не существует, то возникает ошибка OSError.

"Имя интерфейса" - это имя, задокументированное в вызове функции socket.if_nameindex().

Доступность: Unix, Windows.

Изменено в версии 3.8: Добавлена ​​поддержка Windows.

Примеры получения имен сетевых интерфейсов по их номеру.

>>> import socket
>>> socket.if_indextoname(1)
# 'lo'
>>> socket.if_indextoname(2)
# 'enp2s0'

Примеры получения номера сетевого интерфейса по его имени.

>>> import socket
>>> socket.if_nametoindex('lo')
# 1
>>> socket.if_nametoindex('enp2s0')
# 2