Loopback Adapter nome em Linux
-
06-07-2019 - |
Pergunta
É seguro assumir que o adaptador de rede de auto-retorno em um sistema Linux será sempre chamado 'lo' - isso é apenas uma convenção de nomeação que não podem ser cumpridas, ou deve sempre ser o caso?
Solução
Eu não sei de qualquer sistema Linux que tem uma interface de auto-retorno outra coisa senão lo
. Gostaria de contar com essa convenção de nomenclatura, se eu escrever um script específico do sistema, mas não quando se escreve um programa portátil. Por exemplo loopback em OSX é lo0
.
Uma maneira confiável em C está chamando um SIOCGIFCONF
ioctl
em um soquete, interagindo sobre as interfaces, chamando SIOCGIFFLAGS
ioctl
em cada um, e verificar quais interfaces têm um conjunto bandeira IFF_LOOPBACK
(veja /usr/include/linux/if.h
).
SIOCGIFCONF
também lhe dará interface de nomes.
Outras dicas
Na minha experiência, é um nome comum, embora você não deve confiar sempre em que seja assim. Talvez enumerar as interfaces e olhando para o outro com um endereço de 127.0.0.1 seria o caminho a percorrer?
É uma convenção bastante antiga, na verdade eu não vi uma caixa de Linux / distro ainda que não chamá-lo de 'lo'.
No entanto, os nomes de dispositivos em sistemas * nix são tão diversos pode-se supor que eles vão mudar. Use os padrões se você quer portabilidade (neste caso, 127.0.0.1).
Interfaces pode ser renomeado para o que quiser - mas qualquer um que renomeia a interface de auto-retorno está sendo extremamente tola e merece ter um sistema de folga:)
Sim, você pode enumerar as interfaces, e obter seus nomes. Mas talvez seja tão fácil de simplesmente assumir que vai ser "lo".
Usando 127.0.0.1 é provavelmente a maneira infalível para fazê-lo.
RFC3330 define 127.0.0.0/8
estar sempre a sub-rede de auto-retorno.
O uso de localhost
no entanto, definido no Windows em c:\windows\system32\drivers\etc\hosts
e Linux em /etc/hosts
é puramente convenção. Além disso, o nome lo
é o nome comum dado ao localhost Interface no Linux.
Se você deve estar absolutamente certo, o uso 127.0.0.1
.