2017-07-14 86 views
-1

我试图将我的互联网IP地址保存在shell中的一个变量中。确定shell中的IP地址?

我试图

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

但返回

127.0.0.1 

如何进行网络IP地址保存在外壳的变量?

+1

什么IP?您的WAN(外部)IP? – BrightOne

+0

我的IP用于本地互联网,不是77。更多 –

+0

但是192.somethingelse –

回答

2

要得到所有你本地接口的IP地址,请尝试使用ifconfig,例如像这样:

$ ifconfig | awk '/inet/{ print $2 }' 
127.0.0.1 
10.8.0.34 
192.168.1.2 

在这里你可以看到我有3个地址(环回适配器,以太网和WiFi)。如果你知道你的本地网络地址有192.*形式,你只能得到一个具有:

$ 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 

要获得IPv6地址,寻找inet6,而不是inet

+0

谢谢,现在正在工作 –

+0

不客气! – randomir