我想学习使用 dpkt 处理数据包解码器。在网站上,我看到了以下示例代码:
>>> from dpkt.ip import IP
>>> ip = IP(src='\x01\x02\x03\x04', dst='\x05\x06\x07\x08', p=1)
>>> ...
如何将 IP 字符串转换'1.2.3.4'
为'\x01\x02\x03\x04'
?
>>> 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'