如何获取Unix机器的IP地址?

Ant*_*ese 15 unix ip

我需要知道 UNIX 机器的 IP 地址。我可以使用 ssh 登录它,但不知道 IP 地址。

谁能告诉我一个命令来获取我登录的Unix机器的IP地址?

Pau*_*l R 13

您可以使用ifconfig来获取系统上任何接口的 IP 地址(请注意,很可能有多个接口和多个 IP 地址)。

从...开始:

 $ ifconfig -a
Run Code Online (Sandbox Code Playgroud)

  • 一些 UNIX 系统不将它们的接口标记为 `en0` - 更通用的答案是使用 `ifconfig -a`。此外,对于普通用户,`ifconfig` 二进制文件并不总是在 `PATH` 上,因此他们可能需要尝试各种咒语,例如 `/sbin/ifconfig -a`、`/etc/ifconfig -a` 或以 root 身份登录和尝试`ifconfig -a`。 (4认同)

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

试试这个代码来查看unix机器的IP地址

nslookup mach_name
Run Code Online (Sandbox Code Playgroud)


小智 5

另一种方法ipconfigip(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