日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

字符串的地址_面试题:我有一批IPv6地址,你帮我想个办法来存储?

發(fā)布時(shí)間:2024/7/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符串的地址_面试题:我有一批IPv6地址,你帮我想个办法来存储? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
作者:dadiyang-緒揚(yáng)來(lái)源:公眾號(hào)Java面試那些事兒

之前寫(xiě)了一篇《面試題:請(qǐng)用代碼實(shí)現(xiàn)ip地址與int之間互換?》,有讀者評(píng)論問(wèn)到 IPv6 的轉(zhuǎn)換方法,于是抽時(shí)間也自己實(shí)現(xiàn)了一下。

面試官:我有一批IPv6地址,你幫我想個(gè)辦法來(lái)存儲(chǔ)?

我:啊。。。

面試官:……嗯。好的。回去等通知吧。

# 什么是IPv6?

IPv6是英文“Internet Protocol Version 6”(互聯(lián)網(wǎng)協(xié)議第6版)的縮寫(xiě),是互聯(lián)網(wǎng)工程任務(wù)組(IETF)設(shè)計(jì)的用于替代IPv4的下一代IP協(xié)議,其地址數(shù)量號(hào)稱可以為全世界的每一粒沙子編上一個(gè)地址。IPv6的地址長(zhǎng)度為128位,它有3種表示方法,分別是冒分十六進(jìn)制表示法、0位壓縮表示法、內(nèi)嵌IPv4地址表示法。

# 思考

首先,IPv6 的地址長(zhǎng)度為 128 位,而 Java 中沒(méi)有 128 位的原生數(shù)字,int 為 32 位,long 是 64 位,因此若要將 IPv6 地址直接轉(zhuǎn)為 long, 則會(huì)丟掉一半的信息,這肯定是不能接受的。

因此,解決方式有兩種思路。第一,使用 BigInteger;第二,將 IPv6 地址的 128 位拆分為兩個(gè) 64 位的地址,即可存到兩個(gè) long 整數(shù)組成的數(shù)組中。本文采用后者,即將 IPv6 地址轉(zhuǎn)換為 long 數(shù)組。

# 實(shí)現(xiàn)篇

另外,為簡(jiǎn)便起見(jiàn),我們只考慮冒分十六進(jìn)制表示法的情況,即完整的ip地址,如 0:0:0:0:0:0:0:0,0位壓縮表示法和內(nèi)嵌 IPv4 地址表示法暫不考慮。

將IPv6地址轉(zhuǎn)為long數(shù)組,代碼如下。

將long數(shù)組轉(zhuǎn)為IPv6地址,代碼如下。

小試牛刀。

輸出結(jié)果如下所示。

本次測(cè)試 ipv6 地址: FFFF:FFFF:7654:FEDA:1245:BA98:3210:4562, 轉(zhuǎn)為 long 數(shù)組: [-82623535708635137, 4999613583766065733], 再轉(zhuǎn)回 ipv6 字符串: ffff:ffff:7654:feda:1245:ba98:3210:4562, 是否與原字符串相等: true本次測(cè)試 ipv6 地址: FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF, 轉(zhuǎn)為 long 數(shù)組: [-1, -1], 再轉(zhuǎn)回 ipv6 字符串: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff, 是否與原字符串相等: true本次測(cè)試 ipv6 地址: 7654:0:FFFF:7654:562:222:7622:0, 轉(zhuǎn)為 long 數(shù)組: [8526721465200965204, 129888436749666], 再轉(zhuǎn)回 ipv6 字符串: 7654:0:ffff:7654:562:222:7622:0, 是否與原字符串相等: true本次測(cè)試 ipv6 地址: 0:0:0:0:0:0:0:0, 轉(zhuǎn)為 long 數(shù)組: [0, 0], 再轉(zhuǎn)回 ipv6 字符串: 0:0:0:0:0:0:0:0, 是否與原字符串相等: true

好了,我在這里拋磚引玉了,實(shí)現(xiàn)了IPv6的轉(zhuǎn)換,相信聰明的你一定知道接下來(lái)該怎么存儲(chǔ)這個(gè)long數(shù)組了。

其實(shí),現(xiàn)在很多數(shù)據(jù)庫(kù),都內(nèi)置了專門的函數(shù)來(lái)轉(zhuǎn)換IP地址。比如從mysql5.6開(kāi)始,可以直接使用inet6_aton()函數(shù)來(lái)轉(zhuǎn)換,見(jiàn)下圖。

總之,直接保存字符串,雖然可讀性最好,但浪費(fèi)了不少的存儲(chǔ)空間;轉(zhuǎn)換后再存儲(chǔ),雖然節(jié)約了存儲(chǔ)空間,但可讀性較差。該如何取舍,還是根據(jù)具體的應(yīng)用場(chǎng)景來(lái)決定。

如果你有更好的方案,歡迎在留言區(qū)一起探討。

總結(jié)

以上是生活随笔為你收集整理的字符串的地址_面试题:我有一批IPv6地址,你帮我想个办法来存储?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久久久久久免费大片 | 久久伊人免费视频 | 三上悠亚人妻中文字幕在线 | 亚洲精品一区二三区不卡 | 麻豆人妻少妇精品无码专区 | 91久久一区 | 国产乱码精品一区二区三区精东 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 秋霞电影网一区二区 | 黄色香蕉软件 | 天天干夜夜草 | 色视频在线免费观看 | 国产毛片儿 | 免费午夜人成电影 | 啪啪福利社| 好看的av在线 | 国产精品一区三区 | 欧美日韩aaa | 欧美视频一二区 | 一级特黄aa大片免费播放 | 欧美大片免费观看网址 | 中文字幕av免费在线观看 | 在线一二区 | 欧美在线xxxx| 高潮又黄又刺激 | 青青射 | 欧美精品一区二区成人 | 精品人成 | 日本一区中文 | 欧美整片sss| 国产原创在线播放 | 国产精品国色综合久久 | 婷婷色婷婷开心五月四房播播 | 影音先锋在线国产 | 老妇裸体性激交老太视频 | 海角国产乱辈乱精品视频 | 五十路在线 | 久久久久久无码精品大片 | 国产午夜福利视频在线观看 | 国产一区午夜 | 九九在线视频 | 69中国xxxxxxxxx69 国产又爽又色 | 中国一级黄色 | 久久国产毛片 | 尤物视频在线观看国产性感 | 国产精品精品 | 中文字幕精品久久 | 国产精品美女www爽爽爽视频 | aa在线视频 | 成人av在线网 | 51精品国产 | 91国内产香蕉 | 小视频在线观看 | 日韩欧美综合一区 | 深夜福利日韩 | 亚洲高清毛片一区二区 | www夜片内射视频日韩精品成人 | 日本在线一级片 | 岳乳丰满一区二区三区 | 中文字幕不卡在线 | 欧美日韩国产中文 | 精品免费一区二区三区 | 成人免费xxxxx在线视频 | 欧美毛茸茸 | 骚av在线| 国产精品久久久久毛片软件 | 一本久久a精品一合区久久久 | 色欲久久久天天天综合网 | 日韩激情片 | 亚洲免费av一区 | 国产乱人对白 | 制服丝袜成人动漫 | 国产夫妻在线视频 | 亚洲aaaa级特黄毛片 | 亚洲欧洲久久 | 91精品人妻一区二区三区果冻 | 国产精品视频在线看 | 日韩视频精品在线 | 成人av手机在线 | 99热r| 国产秋霞 | 国产尤物av尤物在线看 | 在线免费视频你懂的 | 中文字幕乱码人妻无码久久95 | 调教驯服丰满美艳麻麻在线视频 | 成人欧美一区二区三区黑人孕妇 | 中文永久免费观看 | 91 高清 在线 制服 偷拍 | 美女靠逼app | 欧美伦理一区二区三区 | 久久综合国产 | 午夜丁香婷婷 | 久久一| 中文字幕无产乱码 | 男人喷出精子视频 | 非洲黑寡妇性猛交视频 | 国产精品伦一区 | 中文字幕av在线免费 | 蜜桃久久av一区 |