电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python IP地址轉整數

瀏覽:8日期:2022-07-04 17:32:48

背景

今天有人問我 “為什么數據庫中有人推薦使用 int 類型來保存 IP 地址?”。現在(2020年)來看這個東西已經有點過時了,一方面是磁盤空間不在那么貴,另一方面是 IPv6 與這條法則不兼容。

下面我們就來看一下把 IPv4 地址轉換成整數的原理和收益各是什么。

轉換的原理

一個 IPv4 類的地址共分為四個部分 0.0.0.0 然而每一個部分的取值范圍都在 0 ~ 255;也就是說每一個部分都可以用一個字節來保存,總共寫個字節就夠了,4 個字節不就是 int 嗎?

第一步 把 IP 地址的各個部分轉換為一個字節,并拼接它們,那么會得到一個 4 字節的串。

import structdef aton(ip_address: str) -> bytes: result = [] for i in ip_address.split(’.’): result.append(struct.pack('!B', int(i))) return b’’.join(result)

第二步 把字節串轉換成整數。

In [2]: aton('127.0.0.1') Out[2]: b’x7fx00x00x01’In [3]: int.from_bytes(b’x7fx00x00x01’,’big’) Out[3]: 2130706433

這樣我們就把 IPv4 地址轉換成了一個整數,完整的代碼如下。

import structdef aton(ip_address: str) -> bytes: result = [] for i in ip_address.split(’.’): result.append(struct.pack('!B', int(i))) return b’’.join(result)if __name__ == '__main__': bts = aton('127.0.0.1') print(int.from_bytes(bts, ’big’))

運行效果如下。

python3 main.py 2130706433

轉換的收益與限制

如果不做轉換可以使用 varchar 來保存 IPv4 地址,這樣的話需要 15 (3*4 + 3) 個字節才行;如果轉換一下只需要 4 個字節就行了,節約了磁盤空間,可能會多用點 cpu 時間。

今天來說 IPv6 已經是主流,它的長度直接從之前的 4 字節直接漲到了 16 字節;int 不再能滿足需求,為了可以統一處理這兩種類型的 IP 現在推薦使用 varchar 來保存。

inet_aton 與 inet_ntoa

這一對 IP 是 IPv4 時代的轉換函數,目前來看已經過時。

1、inet_aton IP 轉數字。

In [4]: socket.inet_aton('127.0.0.1') Out[4]: b’x7fx00x00x01’

2、inet_ntoa 數字轉 IP。

In [5]: socket.inet_ntoa(b’x7fx00x00x01’) Out[5]: ’127.0.0.1’

inet_pton 與 inet_ntop

這是一對新的 API ,這對 API 兼容了 IPv4 和 IPv6 。

In [6]: socket.inet_pton(socket.AF_INET6,'5aef:2b::8') Out[6]: b’Zxefx00+x00x00x00x00x00x00x00x00x00x00x00x08’In [7]: socket.inet_ntop(socket.AF_INET6,b’Zxefx00+x00x00x00x00x00x00x00x00x00x00x00x08’) Out[7]: ’5aef:2b::8’In [8]: socket.inet_pton(socket.AF_INET,'127.0.0.1') Out[8]: b’x7fx00x00x01’In [9]: socket.inet_ntop(socket.AF_INET,b’x7fx00x00x01’) Out[9]: ’127.0.0.1’

以上就是python IP 地址轉整數的詳細內容,更多關于python ip地址轉整數的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 合肥网络推广_合肥SEO网站优化-安徽沃龙First | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 北京发电机出租_发电机租赁_北京发电机维修 - 河北腾伦发电机出租 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 股票入门基础知识_股票知识_股票投资大师_格雷厄姆网 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 999范文网_优质范文下载写作帮手| 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 长信科技产业园官网_西安厂房_陕西标准工业厂房 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 | 沥青车辙成型机-车托式混凝土取芯机-混凝土塑料试模|鑫高仪器 | TMT观察网_独特视角观察TMT行业 派财经_聚焦数字经济内容服务平台 | 警方提醒:赣州约炮论坛真的安全吗?2025年新手必看的网络交友防坑指南 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 整车VOC采样环境舱-甲醛VOC预处理舱-多舱法VOC检测环境仓-上海科绿特科技仪器有限公司 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 宿舍管理系统_智慧园区系统_房屋/房产管理系统_公寓管理系统 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 月嫂_保姆_育婴_催乳_母婴护理_产后康复_养老护理-吉祥到家家政 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 |