2
我想要一個正常格式的MAC地址,我從get_node()獲得。Python獲得MAC地址的正常HEX格式
我得到的格式是0x0L0xdL0x60L0x76L0x31L0xd6L,我想刪除0x和L-term到一個真正的十六進制數。它應該是00-0D-60-76-31-D6。
我該如何認識到這一點?
def getNetworkData (self):
myHostname, myIP, myMAC = AU.getHostname()
touple1 = (myMAC & 0xFF0000000000) >> 40
touple2 = (myMAC & 0x00FF00000000) >> 32
touple3 = (myMAC & 0x0000FF000000) >> 24
touple4 = (myMAC & 0x000000FF0000) >> 16
touple5 = (myMAC & 0x00000000FF00) >> 8
touple6 = (myMAC & 0x0000000000FF) >> 0
readableMACadress = hex(touple1) + hex(touple2) + hex(touple3) + hex(touple4) + hex(touple5) + hex(touple6)
print readableMACadress
return myHostname, myIP, readableMACadress
完美消除臨時
touple
變量!它是如何工作的? – Furtano'%X'將數字格式化爲大寫的十六進制數,不帶'0x'或'L'。 '02'的意思是「填充零到2個位置」。所以每個'%02X'格式化一個兩位數的大寫十六進制數字。 – nneonneo
簡明替換使用'''join'將六個十六進制字節連接在一起,這些字節使用'(myMAC >> 8 * i)&0xff'進行計算。我們使用'reversed(xrange(6))''將'i'從5重複到0。 – nneonneo