我想学习使用dpkt处理数据包解码器。在网站上,我看到了以下示例代码:
>>> from dpkt.ip import IP
>>> ip = IP(src='\x01\x02\x03\x04', dst='\x05\x06\x07\x08', p=1)
>>> ...
如何将'1.2.3.4'
之类的IP字符串转换为'\x01\x02\x03\x04'
?
答案 0 :(得分:5)
>>> import socket
>>> socket.inet_aton('1.2.3.4')
'\x01\x02\x03\x04'
要获得点分十进制,请使用socket.inet_ntoa
:
>>> socket.inet_ntoa('\x01\x02\x03\x04')
'1.2.3.4'
<强>更新强>
在Python 3.3+中,ipaddress.IPv4Address
是另一种选择。
>>> import ipaddress
>>> ipaddress.IPv4Address('1.2.3.4').packed
b'\x01\x02\x03\x04'
>>> ipaddress.IPv4Address(b'\x01\x02\x03\x04')
IPv4Address('1.2.3.4')
>>> str(ipaddress.IPv4Address(b'\x01\x02\x03\x04'))
'1.2.3.4'