第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python3 ip地址轉(zhuǎn)int算法

python3 ip地址轉(zhuǎn)int算法

ibeautiful 2019-03-05 15:09:49
61.140.24.198,1035664531115.230.17.198,194307419536.6.158.117,607156768117.67.49.165,1970656752這個ip算法想了很久沒反推出來,各位大神看得出來嗎?def ip2int(ip):ip_list = ip.strip().split('.')SUM = 0for i in range(len(ip_list)):    SUM += int(ip_list[i])*256**(3-i)return SUMprint(str(ip2int("36.6.158.117"))+str(" -> 36.6.158.117"))print(str(ip2int("115.230.17.198"))+str(" -> 115.230.17.198"))604413557 -> 36.6.158.1171944457670 -> 115.230.17.198答案已經(jīng)差不多很像了
查看完整描述

2 回答

?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

這是 IPv4 在網(wǎng)絡(luò)傳輸中的常見格式,你可以通過 wireshark 抓包工具,在 IPv4 的 Source 或 Destination 字段看到。

IPv4 地址占用 4 個字節(jié),傳輸時采用 big-endian 格式。
比如 IP 0x01020304,它在網(wǎng)絡(luò)中的傳輸順序是 01 02 03 04,轉(zhuǎn)換成我們?nèi)粘R姷降淖址闶?"1.2.3.4"。

你所貼的代碼

SUM += int(ip_list[i])*256**(3-i)

可以理解成

SUM |= int(ip_list[i]) << (8*(3-i))

即對數(shù)組元素依次左移 24、16、8、0 位。

除此之外,還有更便捷的方法,如

import socketimport struct# 字符串 -> 數(shù)字a = '1.2.3.4'n = struct.unpack('>I', socket.inet_aton(a))[0]assert n == 0x01020304# 數(shù)字 -> 字符串a(chǎn)2 = socket.inet_ntoa(struct.pack('>I', n))assert a2 == a


查看完整回答
反對 回復(fù) 2019-03-09
  • 2 回答
  • 0 關(guān)注
  • 970 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號