2014-11-06 77 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。

相關問題