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


Answers:


5

尝试此代码以查看UNIX机器的IP地址

nslookup mach_name

12

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

从...开始:

 $ ifconfig -a

4
某些UNIX系统不标记其接口en0-更通用的答案是使用ifconfig -a。另外,ifconfig二进制是不是始终在PATH为普通用户,使他们可能需要尝试各种咒语,如/sbin/ifconfig -a/etc/ifconfig -a或以root身份登录,并尝试ifconfig -a
RedGrittyBrick

7

使用此命令

host `hostname`

或这个

nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}' | tail -n 1

说明

从nslookup开始

nslookup `hostname`      

然后搜索“地址”

nslookup `hostname` | grep -i address

这将返回类似

Address:    192.168.1.1#53
Address: 192.168.1.167

现在,我们通过选择文本的第二列来仅检索地址。我们将“”作为字段分隔符

nslookup `hostname` | grep -i address | awk -F" " '{print $2}'

通过选择第一列,我们将摆脱“#53”部分。我们将“#”作为字段分隔符

nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}'

最后一个地址是本地地址。尾巴将帮助我们得到它。

nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}' | tail -n 1

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

您需要的接口不是回送(lo): 172.31.39.10


0

使用ifconfig并寻找inet输出的一部分。请注意,如果您有多个网卡(例如,以太网和无线网卡),则将有多个条目。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.