如何在我的linux机器上找到主IP地址?

时间:2017-06-14 12:09:00

标签: linux networking ip-address

我听说有一些类型的IP地址,如主地址等,并试图使用以下命令获取IP地址

ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'

并得到如下结果

192.168.122.1
192.168.168.1
172.16.142.1
192.168.1.102

所以从上面可以有人回答我的主要地址是什么?

3 个答案:

答案 0 :(得分:1)

没有"主要地址"或"主要设备"。您有多个与多个网络设备相关的IP地址。

您可以找到允许您访问互联网的设备,并找到其本地IP。

为此,请发出命令route。它将输出类似

的内容
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.254   0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

现在您只需要使用default行上的设备并在此命令中使用它:

ifconfig <DEVICENAME> | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*'

答案 1 :(得分:1)

当机器具有不同的IP地址时,无法从仅网络的角度定义主IP。但是机器通常具有可以通过命令uname -n或POSIX函数uname获得的名称。获得该名称后,您可以通过getent命令或gethostbyname函数找到与其对应的IP地址:所谓的主IP地址是返回的第一个地址。

所以在这里你可以使用:

getent hosts $(uname -n) | head -1 | cut -f 1 -w

答案 2 :(得分:0)

主要地址取决于您的使用情况,网络级别没有任何内容。如果您通常使用一个IP来访问您的服务器,您可以将其称为主服务器,网络设备将不会知道其中的差异。