< 返回新聞公共列表

linux怎么獲取IP地址?

發(fā)布時(shí)間:2022-11-03 14:09:03

IP地址是現(xiàn)代網(wǎng)絡(luò)通信的重要組成部分。在本指南中,我們將向大家展示linux怎么獲取IP地址?


IP地址是所謂的TCP/IP協(xié)議的一部分。這是一個(gè)網(wǎng)絡(luò)標(biāo)準(zhǔn),它定義了如何在計(jì)算機(jī)網(wǎng)絡(luò)中連接在一起的計(jì)算機(jī)之間打包和傳輸數(shù)據(jù)。實(shí)際上有兩種類型的IP地址,公共IP地址和私有IP地址。


linux獲取IP地址.png


公共IP地址和私有IP地址之間的差異:

互聯(lián)網(wǎng)服務(wù)提供商 (ISP) 分配公共IP地址,這類似于我們的公共家庭地址。當(dāng)計(jì)算機(jī)連接到專用網(wǎng)絡(luò)時(shí),它們每個(gè)都會(huì)獲得一個(gè)專用IP地址,以便在該網(wǎng)絡(luò)中使用。專用IP地址由我們的路由器或網(wǎng)絡(luò)中的其他設(shè)備分配。反過來,路由器可以使用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT) 將傳入數(shù)據(jù)包路由到網(wǎng)絡(luò)上的正確設(shè)備。


下面,小編詳細(xì)給大家分析下linux獲取IP地址的方法:

一、如何找到公共IP地址?

我們可以使用各種連接到Internet的命令來發(fā)現(xiàn)我們的公共IP地址,以便為我們運(yùn)行查詢。

1、使用dig命令獲取公共IP地址

該dig命令是用于Linux的DNS查找實(shí)用程序。使用dig,我們可以通過連接到服務(wù)器來查找我們的公共IP地址。服務(wù)器提供商托管有助于發(fā)現(xiàn)Internet上網(wǎng)絡(luò)IP地址的DNS服務(wù)器。在bash、sh或其他終端中運(yùn)行以下命令。

$ dig +short myip.opendns.com @resolver1.opendns.com

作為輸出,應(yīng)該從服務(wù)器提供商解析器取回我們的公共IP地址。我們的IP地址將是一系列格式為 216.58.216.164(這是Google的眾多 IP地址之一)的數(shù)字組,或者是此類的變體。

2、使用Curl返回我們的公共IP地址

該curl命令是另一個(gè)網(wǎng)絡(luò)實(shí)用程序,可讓我們與Internet上的服務(wù)器進(jìn)行交互??梢允褂靡韵逻x項(xiàng)查詢服務(wù)器以返回我們的公共IP:

$ curl http://ifconfig.me/ip

或者$ curl http://icanhazip.com

每個(gè)命令的輸出將是這些服務(wù)器看到的我們的公共IP。

除了上面給出的這兩個(gè)之外,還有許多其他服務(wù)器可以返回我們的公共IP地址。

3、使用wget返回我們的公共IP地址

wget是適用于Linux的常用實(shí)用程序,我們可以使用它代替curl下載數(shù)據(jù)并與服務(wù)器交互??梢允褂脀get使用以下命令檢索我們的公共IP:$ wget -qO- icanhazip.com


二、如何找到私有IP地址?

1、使用 ifconfig 命令獲取私有IP地址

ifconfig是一個(gè)命令行程序,用于在Linux上配置網(wǎng)絡(luò)接口。我們可以使用該命令以及過濾我們的私有IP地址的各種標(biāo)志來檢索自己的IP地址。在shell中運(yùn)行以下命令:

$ ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'

上面的命令檢查所有活動(dòng)的網(wǎng)絡(luò)接口,然后過濾TCP/IP接口,最后過濾本地IP地址的輸出。最終輸出是我們的私有IP地址。類似于119.136.154.136或一些變體。

我們可以使用sed過濾ifconfig輸出,這是一個(gè)用于解析和轉(zhuǎn)換文本流的實(shí)用程序。運(yùn)行以下命令以獲取您的私有 IP 地址:

$ ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'

在此示例中,我們過濾ifconfig輸出以獲取我們?cè)赥CP/IP協(xié)議下的IP地址。如果沒有安裝sed或ifconfig ,上述命令可能會(huì)失敗。如果命令失敗,請(qǐng)嘗試該hostname命令并按照以下方法操作。

2、使用主機(jī)名命令獲取私有IP地址

https://linux.die.net/man/1/hostname命令返回機(jī)器的DNS信息。我們可以通過在shell中執(zhí)行以下命令來找到我們的私有IP地址:

$ hostname -I

上面的命令枚舉了所有網(wǎng)絡(luò)接口上的所有配置地址,包括我們的私有 IP地址。

3、使用IP命令獲取私有IP地址

我們還可以使用ip命令獲取Linux的私有IP地址。該ip命令顯示和操作路由、設(shè)備、策略路由和隧道。

我們可以使用以下ip帶有標(biāo)志的命令變體來返回我們的私有IP地址。

$ ip route get 1 | awk '{print $NF;exit}'

$ ip route get 8.8.8.8 | head -1 | cut -d' ' -f8

$ ip route get 8.8.8.8 | head -1 | awk '{print $7}'

這些命令打印出路由表?xiàng)l目,用于向備用服務(wù)器發(fā)送請(qǐng)求。這些涉及我們的私有IP地址作為請(qǐng)求的來源。我們正在使用Linux 命令head、awk和cut來過濾該源以提取我們的私有IP地址。

4、從網(wǎng)絡(luò)連接設(shè)置中查找私有IP地址

除了命令行,我們還可以使用Linux管理小程序。我們可能需要調(diào)整這些說明以適合我們的確切Linux發(fā)行版。

導(dǎo)航到您的“菜單”

找到“首選項(xiàng)”選項(xiàng)卡

導(dǎo)航到“網(wǎng)絡(luò)”或用于管理網(wǎng)絡(luò)信息的等效項(xiàng)

選擇網(wǎng)絡(luò)類型(即 Wi-Fi、以太網(wǎng)或其他)

可以在有關(guān)我們IP的打印信息下查看私有IP地址

這不適用于嚴(yán)格的命令行環(huán)境,但適用于桌面Linux系統(tǒng)。如果僅使用命令行登錄,則需要嘗試上面給出的其他基于命令的方法。


總結(jié):有多種方法可以在linux獲取IP地址。我們可以使用混合命令,例如ifconfig、ip或hostname,或者使用圖形環(huán)境應(yīng)用程序。


/template/Home/Zkeys724/PC/Static