我想从有效负载中获取前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到255之间的整数。因此,您可以将这些数字快速转换为基数-10,如下所示:int(str(byte), 2)
如果要将字节转换为字符,可以使用chr()函数:char = chr(int(str(byte), 2))
如果您正在使用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
dst_mac = ''
for byte_pos in range(6):
dst_mac = dst_mac + str(hex((ord(payload[byte_pos])))[2:])
print dst_mac
这样,它奏效了。
谢谢