且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

python 将ipv4的格式转换

更新时间:2022-09-21 23:34:06

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


段代码中技术点使用了如下几个方面:

1、for-in循环语句定义192.168.10.1和10.10.10.128两个IP

2、使用inet_aton()把两个字符串格式的IP地址转换成打包后的32位二进制格式

3、使用inet_ntoa()把转换成打包的32bit地址转换为十进制格式

3、使用binascii模块中的hexlify函数,以十六进制形式表示二进制数据。

4、print分段打印输出格式


代码如下:

1
2
3
4
5
6
7
8
import  socket
from binascii import hexlify
def convert_ipv4_address():
    for ip_addr in  ['192.168.10.1','10.10.10.128']:
        packed_ip_addr = socket.inet_aton(ip_addr)
        unpacked_ip_addr = socket.inet_ntoa(packed_ip_addr)
        print ("IP Address: %s => Packed: %s, Unpacked: %s" %(ip_addr,hexlify(packed_ip_addr),unpacked_ip_addr))
convert_ipv4_address()

备注:还要是注意格式的缩进,python对于缩进格式要求相对严格

执行结果截图如下:

python 将ipv4的格式转换



本文转自 yuri_cto 51CTO博客,原文链接:http://blog.51cto.com/laobaiv1/1956413,如需转载请自行联系原作者