Имя петлевого адаптера в Linux - PullRequest
3 голосов
/ 26 октября 2009

Можно ли предположить, что петлевой сетевой адаптер в системе Linux всегда будет называться «lo» - это просто соглашение об именах, которое может не соблюдаться, или это всегда должно быть так?

Ответы [ 6 ]

8 голосов
/ 26 октября 2009

Я не знаю ни одной системы Linux, имеющей интерфейс обратной связи, кроме lo. Я полагаюсь на это соглашение об именах, если я пишу системный скрипт, но не при написании переносимой программы. Например loopback в OSX это lo0.

Надежным способом в C является вызов SIOCGIFCONF ioctl в сокете, итерация по интерфейсам, вызов SIOCGIFFLAGS ioctl для каждого и проверка, на каких интерфейсах установлен флаг IFF_LOOPBACK (см. /usr/include/linux/if.h).

SIOCGIFCONF также даст вам имена интерфейсов.

1 голос
/ 26 октября 2009

Интерфейсы могут быть переименованы во что угодно, но любой, кто переименует петлевой интерфейс, крайне глуп и заслуживает иметь нерабочую систему:)

Да, вы можете перечислять интерфейсы и получать их имена. Но, возможно, так же просто предположить, что это будет «вот».

1 голос
/ 26 октября 2009

Это довольно старое соглашение, на самом деле я еще не видел Linux box / distro, который бы не называл его 'lo'.

Однако имена устройств в * nix системах настолько разнообразны, что можно предположить, что они изменятся. Используйте стандарты, если вам нужна мобильность (в данном случае 127.0.0.1).

1 голос
/ 26 октября 2009

По моему опыту, это обычное имя, хотя не всегда следует верить в это. Может быть, перечисление интерфейсов и поиск адреса с адресом 127.0.0.1 были бы подходящим вариантом?

0 голосов
/ 27 октября 2009

Использование 127.0.0.1, вероятно, является безопасным способом решения этой проблемы.

0 голосов
/ 26 октября 2009

RFC3330 определяет 127.0.0.0/8, чтобы всегда быть петлевой подсетью.

Однако использование localhost, определенное в Windows в c:\windows\system32\drivers\etc\hosts и Linux в /etc/hosts, является чисто условным. Кроме того, имя lo - это типичное имя, данное локальному интерфейсу в Linux.

Если вы должны быть абсолютно уверены, используйте 127.0.0.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...