我正在将一些十六进制字节追加到一个packet = []
中,我想以0x__
的形式返回这些十六进制字节作为十六进制数据。
packet.append("2a")
packet.append("19")
packet.append("00")
packet.append("00")
packHex = []
for i in packet:
packHex.append("0x"+i) #this is wrong
return packHex
我该怎样将
('2a', '19', '00', '00')
在packet
中转换为(0x2a, 0x19, 0x0, 0x0)
在packHex
中?我需要真正的十六进制数据,而不是看起来像十六进制数据的字符串。我正在组装一个要通过pcap
发送的数据包,pcap_sendpacket(fp,packet,len(data))
其中packet
应该是一个十六进制列表或元组,也许可以使用十进制,但我更喜欢十六进制。感谢您的回答。packetPcap[:len(data)] = packHex
解决方案:
for i in packet: packHex.append(int(i,16))
如果需要以十六进制输出,可以使用以下命令:
print ",".join(map(hex, packHex))