Pau*_*l R 13
您可以使用ifconfig来获取系统上任何接口的 IP 地址(请注意,很可能有多个接口和多个 IP 地址)。
从...开始:
$ ifconfig -a
Run Code Online (Sandbox Code Playgroud)
Mar*_*ies 10
host `hostname`
Run Code Online (Sandbox Code Playgroud)
或者这个
nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}' | tail -n 1
Run Code Online (Sandbox Code Playgroud)
从 nslookup 开始
nslookup `hostname`
Run Code Online (Sandbox Code Playgroud)
然后搜索“地址”
nslookup `hostname` | grep -i address
Run Code Online (Sandbox Code Playgroud)
这将返回类似
Address: 192.168.1.1#53
Address: 192.168.1.167
Run Code Online (Sandbox Code Playgroud)
现在让我们通过选择第二列文本来仅检索地址。我们通过“”作为字段分隔符
nslookup `hostname` | grep -i address | awk -F" " '{print $2}'
Run Code Online (Sandbox Code Playgroud)
我们将通过选择第一列来摆脱“#53”部分。我们通过“#”作为字段分隔符
nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}'
Run Code Online (Sandbox Code Playgroud)
最后一个地址是本地地址。Tail 将帮助我们获得它。
nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}' | tail -n 1
Run Code Online (Sandbox Code Playgroud)
小智 5
另一种方法ipconfig是ip(8)可以稍微缩小输出。例如:
$ ip -f inet addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
inet 172.31.39.10/24 brd 172.31.39.255 scope global eth0
Run Code Online (Sandbox Code Playgroud)
不是环回 (lo) 的接口是您想要的接口: 172.31.39.10