2015-05-19 38 views
0

我已經學會了當前的Python3腳本。我從http://www.security.securethelock.com/packet-headers/複製了一些部分,但是當我自己運行它而不是用ASCII打印目的地時,它會以字節打印?問題是什麼?從字節到ASCII的標題無法正常工作

import socket 
import struct 
import binascii 

rawsocket = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) 
rawsocket.bind(("192.168.2.4", 8000)) 

while True: 
    pkt = rawsocket.recvfrom(2048) 
    if len(pkt) > 0: 
     eth_hdr = pkt[0][0:14] 
     eth_hdr = struct.unpack("!6s6s2s", eth_hdr) 

     destination = binascii.hexlify(eth_hdr[0]) 
     print(destination) 

    request = "" 

回答

0

binascii.hexlify()返回一個字節對象;由於數據僅由ASCII數字和字母組成(af),因此您可以安全地將其解碼爲ASCII:

print(destination.decode('ASCII'))