2014-11-06 45 views
0

我有一个mac地址的字符串变量。 它可以是二进制的 - '\ x00 \ x04 \ x96 \ x82Q \ xbb'或ascii - 'c8:be:19:c6:a0:e0'。如果它是二进制我需要将其转换为ascii字符串与b2a_hex函数。是否有可能知道我现在拥有什么类型的字符串?如何知道python中的二进制字符串或ascii字符串

回答

0

十六进制(数字) - >串

返回一个整数或长整型的十六进制表示。

//此函数用于获取十进制数,然后使用该十进制数获得十六进制数。

>>int('010110', 2) 
22 
>>> hex(int('010110', 2)) 
'0x16' 
>>> 

>>> hex(int('0000010010001101', 2)) 
'0x48d' 
0

看长度。如果它是6,那么你有二进制,如果它更大,那么它是文本。

if len(s) <= 6: 
    s = binascii.b2a_hex(s) 
-1

Mac地址是48位长。

如果MAC地址是二进制形式,但将需要6个字节。(8位(1字节)×6 = 46bits)

如果MAC地址是ASCII呈现,这将需要17个ASCII字符(17咬伤)。

所以,如果数据是6个字节,它可能包含二进制Mac地址。 如果数据是17个字节或更多,它可能包含ASCII地址的Mac地址。

0

您也可以使用简单的find。如果string.find(":") == -1它是二进制的,否则它是ASCII。

相关问题