确定shell中的Internet IP地址?

时间:2017-07-14 10:51:33

标签: linux macos shell

我正在尝试将我的互联网IP地址保存到shell中的变量。

我试过

ip=`host 'localhost' | awk '{print $4}'`

但是返回

127.0.0.1

如何将Internet IP地址保存到shell中的变量?

1 个答案:

答案 0 :(得分:2)

要获取所有本地接口的IP地址,请尝试使用$ ifconfig | awk '/inet / { print $2 }' 127.0.0.1 10.8.0.34 192.168.1.2 ,例如:

192.*

在这里你可以看到我有3个地址(环回适配器,以太网和wifi)。如果您知道自己的本地网络地址为$ ifconfig | awk '/inet *192/ { print $2 }' 192.168.1.2 ,则只能使用以下网址:

ip=$(ifconfig | awk '/inet *192/ { print $2 }')

并将其存储到变量中:

bash

或者,将所有地址存储在$ ips=($(ifconfig | awk '/inet / { print $2 }')) $ printf "ip: %s\n" "${ips[@]}" ip: 127.0.0.1 ip: 10.8.0.34 ip: 192.168.1.2 数组中:

inet6

要获取IPv6地址,请查找inet而不是{{1}}。