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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top