欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式

 更新時(shí)間:2023年11月22日 14:54:27   作者:風(fēng)神韻  
這篇文章主要介紹了Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 字符串轉(zhuǎn)整數(shù)

第一步:

  • 是使用 net.ParseIP 判斷字符串是否是合法的 IPv4 地址。
  • 如果合法,net.ParseIP 會(huì)將其轉(zhuǎn)換成字符數(shù)組([]byte)。

第二步:

  • 是使用 binary.Read 方法將上面的字符數(shù)組以大端對(duì)齊的方式寫(xiě)入 ret 變量中。
func InetAddr(ipaddr string) uint32 {
	var ret uint32
 
	ip := net.ParseIP(ipaddr)
	if ip == nil {
		return 0
	}
 
	if err := binary.Read(bytes.NewBuffer(ip.To4()), binary.BigEndian, &ret); err != nil {
		return 0
	}
 
	return ret
}

2. 整數(shù)轉(zhuǎn)字符串

整數(shù)轉(zhuǎn)字符串比較簡(jiǎn)單,

以一個(gè)例子來(lái)演示:

有 IPv4 地址十六進(jìn)制整數(shù)表示形式為 0x01020304,將其分別移位24、16、8、0后,

會(huì)得到 IP 地址字符串表示形式的 4 段:

byte(0x01020304 >> 24) = byte(0x01)           = 1

byte(0x01020304 >> 16) = byte(0x0102)       = 2

byte(0x01020304 >> 8) = byte(0x010203)     = 3

byte(0x01020304 >> 0) = byte(0x01020304) = 4

將這四個(gè)值用 . 拼接后,即可得到字符串表式:1.2.3.4

func IPv4Uint32ToString(ip uint32) string {
    return fmt.Sprintf("%d.%d.%d.%d", byte(ip>>24), byte(ip>>16), byte(ip>>8), byte(ip))
}

注意:

byte 在強(qiáng)制轉(zhuǎn)換大于其存儲(chǔ)最大值時(shí)(0xff)時(shí)會(huì)溢出,會(huì)將左邊部分丟棄。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Go語(yǔ)言中rune方法使用詳解

    Go語(yǔ)言中rune方法使用詳解

    本文主要介紹了Go語(yǔ)言中rune方法使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Go語(yǔ)言實(shí)現(xiàn)常用排序算法的示例代碼

    Go語(yǔ)言實(shí)現(xiàn)常用排序算法的示例代碼

    排序算法是在生活中隨處可見(jiàn),也是算法基礎(chǔ),因?yàn)槠鋵?shí)現(xiàn)代碼較短,應(yīng)用較常見(jiàn)。所以在面試中經(jīng)常會(huì)問(wèn)到排序算法及其相關(guān)的問(wèn)題。本文為大家整理了一些Go語(yǔ)言中常用排序算法的實(shí)現(xiàn),需要的可以參考一下
    2022-08-08
  • golang反向代理設(shè)置host不生效的問(wèn)題解決

    golang反向代理設(shè)置host不生效的問(wèn)題解決

    在使用golang的httputil做反向代理的時(shí)候,發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象,上游網(wǎng)關(guān)必須要設(shè)置host才行,不設(shè)置host的話,golang服務(wù)反向代理請(qǐng)求下游會(huì)出現(xiàn)http 503錯(cuò)誤,接下來(lái)通過(guò)本文給大家介紹golang反向代理設(shè)置host不生效問(wèn)題,感興趣的朋友一起看看吧
    2023-05-05
  • golang mapstructure庫(kù)的具體使用

    golang mapstructure庫(kù)的具體使用

    mapstructure用于將通用的map[string]interface{}解碼到對(duì)應(yīng)的 Go 結(jié)構(gòu)體中,或者執(zhí)行相反的操作,本文主要介紹了golang mapstructure庫(kù)的具體使用,感興趣的可以了解一下
    2023-09-09
  • golang將多路復(fù)異步io轉(zhuǎn)成阻塞io的方法詳解

    golang將多路復(fù)異步io轉(zhuǎn)成阻塞io的方法詳解

    常見(jiàn)的IO模型有阻塞、非阻塞、IO多路復(fù)用,異,下面這篇文章主要給大家介紹了關(guān)于golang將多路復(fù)異步io轉(zhuǎn)成阻塞io的方法,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • go語(yǔ)言LeetCode題解720詞典中最長(zhǎng)的單詞

    go語(yǔ)言LeetCode題解720詞典中最長(zhǎng)的單詞

    這篇文章主要為大家介紹了go語(yǔ)言LeetCode題解720詞典中最長(zhǎng)的單詞,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Go語(yǔ)言如何利用Mutex保障數(shù)據(jù)讀寫(xiě)正確

    Go語(yǔ)言如何利用Mutex保障數(shù)據(jù)讀寫(xiě)正確

    這篇文章主要介紹了互斥鎖的實(shí)現(xiàn)機(jī)制,以及?Go?標(biāo)準(zhǔn)庫(kù)的互斥鎖?Mutex?的基本使用方法,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下
    2023-05-05
  • GoLang channel底層代碼實(shí)現(xiàn)詳解

    GoLang channel底層代碼實(shí)現(xiàn)詳解

    Channel和goroutine的結(jié)合是Go并發(fā)編程的大殺器。而Channel的實(shí)際應(yīng)用也經(jīng)常讓人眼前一亮,通過(guò)與select,cancel,timer等結(jié)合,它能實(shí)現(xiàn)各種各樣的功能。接下來(lái),我們就要梳理一下GoLang channel底層代碼實(shí)現(xiàn)
    2022-10-10
  • Go Map并發(fā)沖突預(yù)防與解決

    Go Map并發(fā)沖突預(yù)防與解決

    這篇文章主要為大家介紹了Go Map并發(fā)沖突預(yù)防與解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 基于Go語(yǔ)言實(shí)現(xiàn)插入排序算法及優(yōu)化

    基于Go語(yǔ)言實(shí)現(xiàn)插入排序算法及優(yōu)化

    插入排序是一種簡(jiǎn)單的排序算法。這篇文章將利用Go語(yǔ)言實(shí)現(xiàn)冒泡排序算法,文中的示例代碼講解詳細(xì),對(duì)學(xué)習(xí)Go語(yǔ)言有一定的幫助,需要的可以參考一下
    2022-12-12

最新評(píng)論