我听说有一些类型的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
所以从上面可以有人回答我的主要地址是什么?
答案 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来访问您的服务器,您可以将其称为主服务器,网络设备将不会知道其中的差异。