我想从有效载荷中获取前6个字节作为单个数字或字符串。
for byte_pos in range(6):
byte_content = ord(payload[byte_pos])
假设有效载荷为1 2 3 4 5 6,
for byte_pos in range(6):
print ord(payload[byte_pos])
这将导致如下结果, 0x1 0x2 0x3 0x4 0x5 0x6
但是我需要一个像123456这样的单个数字/字符串。如何将这些单个数字组合成123456?
如何将这6个byte_contents转换为单个数字或字符串。
答案 0 :(得分:2)
如果您正在读取字节,则表示您正在读取0到255之间的整数。因此,您可以将这些数字快速转换为以10为底的数字,例如:int(str(byte), 2)
如果要将字节转换为字符,则可以使用chr()函数:char = chr(int(str(byte), 2))
答案 1 :(得分:1)
如果您使用的是Python 2.x,这是一个答案(如果我了解您要做什么):
payload = bytearray(b'\x41\x42\x43') #Hex code for ABC
final_string = ''
for byte_pos in range(3):
byte_content = chr(payload[byte_pos])
#print byte_content
final_string = final_string + byte_content
print final_string
输出将是:
A
AB
ABC
答案 2 :(得分:0)
dst_mac = ''
for byte_pos in range(6):
dst_mac = dst_mac + str(hex((ord(payload[byte_pos])))[2:])
print dst_mac
这样,就可以了。
谢谢