如何使用python进行以下转换?
"172.1.3.1" >> "\xAC\x01\x03\x01"
目前我可以进行以下转换:
"172.1.3.1" >> "AC010301"
但是我要求我的结果具有十六进制转义字符,如上所示。
答案 0 :(得分:3)
如果您使用的是Python 2,则可以使用socket
模块。
>>> import socket
>>> socket.inet_aton("172.1.3.1")
'\xac\x01\x03\x01'
这利用inet_aton
:
将IPv4地址从点分四字符串格式(例如,'123.45.67.89')转换为32位压缩二进制格式,字符串长度为四个字符。
如果您使用的是Python 3:
>>> import ipaddress
>>> ipaddress.IPv4Address("172.1.3.1").packed
b'\xac\x01\x03\x01'
答案 1 :(得分:2)
>>> socket.inet_aton('172.1.3.1')
'\xac\x01\x03\x01'
>>> struct.pack('>I', IPy.IP('172.1.3.1').int())
'\xac\x01\x03\x01'