我正在尝试将我的互联网IP地址保存到shell中的变量。
我试过
ip=`host 'localhost' | awk '{print $4}'`
但是返回
127.0.0.1
如何将Internet IP地址保存到shell中的变量?
答案 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}}。