Python 将 IPv4 地址转换成不同的格式

本文介绍了如何使用Python的socket库将IPv4地址转换为32位二进制格式。通过示例展示了convert_ip4_address()函数,利用inet_aton()和inet_ntoa()进行转换,涉及IP地址127.0.0.1和192.168.0.1。

如果要使用低层网络函数,有时普通的字符串形式的IP地址并不是很有用,需要把它们转换成打包后的32位二进制格式。
Python的socket库提供了很多用来处理不同IP地址格式的函数,这里使用其中:inet_aton() 和 inet_ntoa() 函数。
定义convert_ip4_address()函数,调用inet_aton()和inet_ntoa()转换IP地址,使用两个示例IP地址:127.0.0.1和192.168.0.1。

import socket 
from binascii import hexlify 
def convert_ip4_address(): 
	for ip_addr in ['127.0.0.1', '192.168.0.1']: 
		packed_ip_addr = socket.inet_aton(ip_addr) 
		unpacked_ip_addr = socket.inet_ntoa(packed_ip_addr) 
		print("IP Address: {} => Packed: {}, Unpacked: {}".format(ip_addr, hexlify(packed_ip_addr), unpacked_ip_addr))
if __name__ == '__main__': 
	convert_ip4_address() 

运行此代码,会得到以下输出:

IP Address: 127.0.0.1 => Packed: b'7f000001', Unpacked: 127.0.0.1
IP Address: 192.168.0.1 => Packed: b'c0a80001', Unpacked: 192.168.0.1
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值