如何显示接口的 IP 地址?

如何显示接口的 IP 地址?

如果我想显示分配给 eth1 的 IP 地址,如何在 Bash 中执行此操作?

答案1

尝试一下(Linux)

/sbin/ifconfig eth1 | grep 'inet addr:' | cut -d: -f2| cut -d' ' -f1

或者这个(Linux)

/sbin/ifconfig eth0 | awk -F ' *|:' '/inet addr/{print $4}'

或者这个(*BSD)

ifconfig bge0 | grep 'inet' | cut -d' ' -f2

或者这个(Solaris 10)

ifconfig e1000g0 | awk '/inet / {print $6}'

显然,更改接口名称以匹配您想要从中获取信息的名称。

答案2

正如@Manuel 提到的,ifconfig它已经过时了,并且ip是今后推荐的方法。

ip -f inet addr show eth1

并使用@bleater 的 sed 或@Jason H. 的 awk 来过滤输出(取决于您是否需要掩码)

ip -f inet addr show eth1 | sed -En -e 's/.*inet ([0-9.]+).*/\1/p'

ip -f inet addr show eth1 | awk '/inet / {print $2}'

答案3

在 Linux 系统上:

hostname --all-ip-addresses

只会提供给你 IP 地址。

在 Solaris 系统上使用:

ifconfig e1000g0 | awk '/inet / {print $2}'

答案4

更好的方法是:从命令“ip”获取 ip 地址,因为“ifconfig”已经过时了。否则,使用“ifconfig”会遇到问题,因为 ifconfig 的输出与语言有关。

我使用此命令来获取所有 IP(IPv4):

ip addr show | grep -o "inet [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" | grep -o "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"

相关内容