主机名-i与主机名-I在Linux中

问题描述 投票:0回答:2

因此,我在Google上查找了hostname -ihostname -I的输出之间的区别,但没有任何重要意义。主机名-i的输出127.0.1.1主机名-I的输出192.168.X.X。我只能得到的是:-i:此选项用于获取IP(网络)地址。仅当主机名是可解析的时,此选项才有效。-I:此选项用于获取所有IP(网络)地址。该选项不取决于主机名的可解析性。如果有人可以为我详细说明这一点,那就太好了。

linux networking command-line-interface
2个回答
0
投票

[根据您问题的信息,我推断您的问题与linux hostname命令有关。这一点很重要,因为该命令的BSD风格(例如在macOS系统中找到)具有不同的参数集。

linux hostname command的手册页实际上非常详细地说明了差异,并且您已经从中摘录了该摘录:

  -i, --ip-address
         Display  the  network address(es) of the host name. Note that this works only if the host name can be resolved. Avoid
         using this option; use hostname --all-ip-addresses instead.
  -I, --all-ip-addresses
         Display all network addresses of the host. This option enumerates all configured addresses on all network interfaces.
         The  loopback interface and IPv6 link-local addresses are omitted. Contrary to option -i, this option does not depend
         on name resolution. Do not make any assumptions about the order of the output.

“正在解析的地址”(-i参数表示正在通过DNS解析)。通过使用某些名称解析命令,例如nslookup <yourhostname>getent hosts <yourhostname>,您可以获得类似的结果:

$ nslookup myhostname
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:    myhostname
Address: X.X.X.X

-I另一方面遍历主机的所有网络接口,并查看它们的实际配置。这意味着它通过完全不同的方法获取IP地址。


0
投票

假设您的主机名设置为myhosthostname -i尝试解析myhost。您的/etc/hosts]中可能有这样一行

127.0.0.1       myhost

这会将myhost解析为127.0.0.1

使用hostname -I,您将获得网络接口的地址,显然没有回送地址。这些地址可能由DHCP分配。

在使用输出192.168.X.X的情况下,只有一个接口仅连接了一个IPv4地址。

我的Ubuntu 19.10系统仅连接到WiFi时显示一个IPv4地址和一个IPv6地址,或者同时连接到WiFi和以太网时分别显示两个IPv4和IPv6地址。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.