現(xiàn)如今 ifconfig 命令已經(jīng)被啟用了。那么,除此以外還有什么別的方式來(lái)查詢 IP 地址呢?今天我們就來(lái)了解一下這個(gè)問(wèn)題。

幾年前,ifconfig 是 Linux 中最受歡迎的查詢本機(jī) IP 地址的方法。但是現(xiàn)如今 ifconfig 命令已經(jīng)被啟用了。在某些 Linux 發(fā)行版上已經(jīng)不用了:
那么,除此以外還有什么別的方式來(lái)查詢 IP 地址呢?今天我們就來(lái)了解一下這個(gè)問(wèn)題。
在 Linux 命令行中查找 IP 地址
現(xiàn)在,可以使用 ip 命令來(lái)查詢 IP 地址。ip 命令是通用的,可以用于網(wǎng)絡(luò)相關(guān)的其他一些事情。
不過(guò),要顯示 IP 地址,可以使用 ip addr,ip a 或者 ip address,如下所示命令:
輸出如下:?
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: wlp58s0: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 9c:b6:d0:d0:fc:b5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.20/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp58s0
valid_lft 5962sec preferred_lft 5962sec
inet6 fe80::bf14:21e3:4223:e5e4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
在上面的輸出中,你可以忽略第一個(gè)名為lo(loopback)的輸出,除此以外,可以看到 IP 地址顯示為192.168.1.20。它后面的24是子網(wǎng)掩碼。

如上所示,可以使用 ip 命令獲取主機(jī)的 IP 地址。除此以外,還可以通過(guò) bash 腳本獲取 IP 地址。
獲取 IP 地址的其他方法
除了使用 ip 命令以外,還有其他的幾個(gè)方法來(lái)獲取 IP 地址。
使用 hostname 命令查看IP地址
hostname 命令通常用于顯示系統(tǒng)的主機(jī)名,也可以用于顯示主機(jī)的IP地址:
上述命令會(huì)顯示主機(jī)的 IP 地址:?
$ hostname -I192.168.0.106
使用 nmcli 工具顯示 IP 地址
大多數(shù) Linux 發(fā)行版都有一個(gè) Network Manager 的工具,該工具有一個(gè)名為 nmcli 的命令行界面,可以使用此 nmcli 工具來(lái)查看網(wǎng)絡(luò)配置。比如可以使用如下命令查看 IP 地址:
那么,ifconfig 呢?
實(shí)際上,我們?nèi)匀豢梢允褂?ifconfig 命令。如果系統(tǒng)中不存在這個(gè)命令,我們可以手動(dòng)安裝,它存在于網(wǎng)絡(luò)工具包中。
在基于 Ubuntu 的 Linux 中,可以使用如下命令安裝網(wǎng)絡(luò)工具:
安裝完成后,就可以使用 ifconfig 命令來(lái)查詢 IP 地址了:
輸出如下:?
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 14855 bytes 3027297 (3.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14855 bytes 3027297 (3.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp58s0: flags=4163 mtu 1500
inet 192.168.0.106 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::bf14:21e3:4223:e5e4 prefixlen 64 scopeid 0x20
ether 9c:b6:d0:d0:fc:b5 txqueuelen 1000 (Ethernet)
RX packets 88413 bytes 61851930 (61.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 56505 bytes 11409219 (11.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
不過(guò),因?yàn)?ifconfig 命令已經(jīng)被棄用,所以我們還是不鼓勵(lì)使用網(wǎng)絡(luò)工具,建議使用 ip 命令。
查詢公網(wǎng)IP地址
上面我們介紹的都是查詢本地內(nèi)網(wǎng)IP地址的方法,也就是局域網(wǎng)的 IP 地址。
內(nèi)網(wǎng) IP 地址是局限在局域網(wǎng)中的地址,用于與局域網(wǎng)中的其他設(shè)備進(jìn)行通信。局域網(wǎng)之外的其他設(shè)備無(wú)法通過(guò)這個(gè) IP 地址找到你。我們所說(shuō)的公網(wǎng)地址一般是指路由器的IP地址,路由器通過(guò)內(nèi)網(wǎng) IP 與你的設(shè)備通信。
那么,如何獲取公網(wǎng)IP地址呢?這就需要借助于第三方工具了。
比如,可以使用 OpenDNS 的 host 命令來(lái)獲取公網(wǎng) IP 地址。
host myip.opendns.com resolver1.opendns.com
其輸出如下:?
Using domain server:
Name: resolver1.opendns.com
Address: 208.67.222.222#53
Aliases:
myip.opendns.com has address 202.91.87.117
Host myip.opendns.com not found: 3(NXDOMAIN)
Host myip.opendns.com not found: 3(NXDOMAIN)
以上就是本次分享全部?jī)?nèi)容。