0

我想学习使用 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'

4

1 回答 1

5

使用socket.inet_aton

>>> 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'
于 2013-10-17T14:32:39.813 回答