Linux中的环回适配器名称

时间:2009-10-26 10:12:50

标签: linux networking network-programming

可以安全地假设Linux系统上的环回网络适配器将始终被称为“lo” - 这只是一个可能不遵守的命名约定,或者必须始终如此?

6 个答案:

答案 0 :(得分:8)

我不知道任何具有除lo以外的环回接口的Linux系统。如果我编写一个特定于系统的脚本,我会依赖这个命名约定,但是在编写可移植程序时却不会。例如,OSX中的环回是lo0

C中一种可靠的方法是在套接字上调用SIOCGIFCONF ioctl,迭代接口,在每个接口上调用SIOCGIFFLAGS ioctl,并检查哪些接口有设置IFF_LOOPBACK标记(请参阅/usr/include/linux/if.h)。

SIOCGIFCONF还会为您提供界面名称。

答案 1 :(得分:1)

根据我的经验,这是一个普通的名字,尽管你不应该总是相信它。也许枚举接口并寻找地址为127.0.0.1的接口将是要走的路?

答案 2 :(得分:1)

这是一个非常古老的惯例,事实上我还没有看过一个没有把它称为'lo'的Linux盒子/发行版。

但是,* nix系统中的设备名称非常多样化,可以假设它们会发生变化。如果您想要可移植性(在本例中为127.0.0.1),请使用标准。

答案 3 :(得分:1)

接口可以重命名为你想要的任何东西 - 但重命名环回接口的任何人都非常愚蠢,并且应该拥有一个非工作系统:)

是的,您可以枚举接口,并获取其名称。但也许只是假设它会变成“lo”就好了。

答案 4 :(得分:0)

使用127.0.0.1可能是一种安全的方法。

答案 5 :(得分:-1)

RFC3330127.0.0.0/8定义为永远是环回子网。

然而,在localhost中的Windows和c:\windows\system32\drivers\etc\hosts中的Linux中定义的/etc/hosts的使用纯粹是惯例。此外,名称lo是Linux中localhost 接口的典型名称。

如果您必须绝对确定,请使用127.0.0.1