Python实现IPv4地址和16进制互相转换
import socketdef ip_to_hex16(ipaddr):# 使用 socket 库中的方法将IP地址转换为网络字节序的二进制表示hex_bytes = socket.inet_aton(ipaddr)# 将二进制数据转换为整数, 其中byteorder='big' 表示使用大端字节序(从高位到低位)来解释二进制数据hex_value = int.from_bytes(hex_bytes, byteorder='big')# 格式化输出为自动添加带 '0x' 前缀的十六进制字符串hex_str = hex(hex_value)return hex_strdef hex16_to_ip(hex16):# 去除字符串中的 '0x' 前缀,并转换为整数hex_value = int(hex16, 16)# 将整数转换为IP地址的字符串表示ip_address = socket.inet_ntoa(hex_value.to_bytes(4, byteorder='big'))return ip_addressprint(ip_to_hex16('172.24.16.2'))
print(ip_to_hex16('192.168.1.2'))print(hex16_to_ip('0xac181002'))
print(hex16_to_ip('0xc0a80102'))
0xac181002
0xc0a80102
172.24.16.2
192.168.1.2