如何使用?Go?獲取你的?IP?地址(推薦)
一個(gè) IP 地址(互聯(lián)網(wǎng)協(xié)議地址)是分配給連接到網(wǎng)絡(luò)的設(shè)備的唯一標(biāo)識(shí)符,允許它們通過(guò)互聯(lián)網(wǎng)或局域網(wǎng)與其他設(shè)備通信。
如何使用 Go 獲取你的 IP 地址呢?
公共 IP 地址 vs 私有 IP 地址
公共 IP 地址是分配給連接互聯(lián)網(wǎng)的設(shè)備的,用于全球訪問(wèn)。它對(duì)互聯(lián)網(wǎng)上的所有人可見(jiàn),并用于外部識(shí)別設(shè)備。相反,私有(本地)IP 地址用于在私有網(wǎng)絡(luò)內(nèi)識(shí)別設(shè)備,僅在該私有網(wǎng)絡(luò)內(nèi)用于通信,外部不可見(jiàn)。
如何在 Go 中獲取公共 IP 地址
在 Go 中,可以使用 net/http
包發(fā)起 HTTP 請(qǐng)求,從外部 API 獲取公共 IP 地址。
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { response, err := http.Get("https://api.ipquery.io") if err != nil { fmt.Println("獲取公共 IP 時(shí)出錯(cuò):", err) return } defer response.Body.Close() body, _ := ioutil.ReadAll(response.Body) fmt.Println("- IP 地址:", string(body)) }
如何在 Go 中獲取本地 IP 地址
要獲取本地 IP 地址,可以使用 net
包并檢索網(wǎng)絡(luò)接口,檢查系統(tǒng)的本地 IP 地址。
package main import ( "fmt" "net" ) func main() { addrs, err := net.InterfaceAddrs() if err != nil { fmt.Println("出錯(cuò):", err) return } for _, addr := range addrs { if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { if ipnet.IP.To4() != nil { fmt.Println("- IP 地址:", ipnet.IP.String()) } } } }
參考來(lái)源
- https://pkg.go.dev/net
- https://www.fortinet.com/resources/cyberglossary/what-is-ip-address
- https://en.wikipedia.org/wiki/IP_address
到此這篇關(guān)于如何使用 Go 獲取你的 IP 地址的文章就介紹到這了,更多相關(guān)Go 獲取 IP 地址內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
go語(yǔ)言異常panic和恢復(fù)recover用法實(shí)例
這篇文章主要介紹了go語(yǔ)言異常panic和恢復(fù)recover用法,實(shí)例分析了異常panic和恢復(fù)recover使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03Go 自動(dòng)升級(jí)依賴版本的幾種方法實(shí)現(xiàn)
Go語(yǔ)言使用GoModules進(jìn)行依賴管理,可以通過(guò)多種方式自動(dòng)升級(jí)依賴,本文就來(lái)介紹Go 自動(dòng)升級(jí)依賴版本的7種方法,感興趣的可以了解一下2025-03-03GO語(yǔ)言開(kāi)發(fā)終端命令行小工具改進(jìn)更新
這篇文章主要為大家介紹了GO語(yǔ)言開(kāi)發(fā)終端命令行小工具的改進(jìn)更新,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01golang實(shí)現(xiàn)java uuid的序列化方法
這篇文章主要介紹了golang實(shí)現(xiàn)java uuid的序列化方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09golang 實(shí)現(xiàn)json類型不確定時(shí)的轉(zhuǎn)換
這篇文章主要介紹了golang 實(shí)現(xiàn)json類型不確定時(shí)的轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01