# hostname --help | grep ip
-i, --ip-address addresses for the host name
-I, --all-ip-addresses all addresses for the host
根据上述,-i
应该只输出一个IP地址,而-I
应该输出全部。就我而言,情况恰恰相反。
# hostname -i
127.0.1.1 123.123.123.123
# hostname -I
123.123.123.123
这是为什么?
这是我的/etc/hosts
文件,以防万一:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 tmp-1 tmp-1
123.123.123.123 tmp-1
(123.123.123.123
我真实的 IP v4 地址在哪里。)
答案1
这hostname(1)
联机帮助页完整描述了这些选项,这应该可以澄清混乱:
-i
,--ip-address
显示主机名的网络地址。请注意,这仅在可以解析主机名的情况下才有效。避免使用此选项;代替使用
hostname --all-ip-addresses
。
-I
,--all-ip-addresses
显示主机的所有网络地址。此选项枚举所有网络接口上的所有配置地址。环回接口和 IPv6 链路本地地址被省略。与 option 相反
-i
,此选项不依赖于名称解析。不要对输出的顺序做出任何假设。
(无论如何,帮助文本-i
显示“地址英语”,因此可以预期那里有多个地址。)