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分段打印输出格式
代码如下:
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对于缩进格式要求相对严格
执行结果截图如下:
时间: 2024-10-12 08:44:50