2017-02-10 35 views
1

我試圖發送一個NTP查詢使用scapy和套接字,但是當我收到日期我得到它在一個原始的形式。python - 原始加載作爲答案

from scapy.all import* 
from scapy.all import* 
import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
addr=("192.114.62.250",123) 
ntp=NTP() 
s.sendto(str(ntp),addr) 
data,ip=s.recvfrom(1024) 

的答案應該是數據,但我得到的是

「\ X1C \ X02 \ n \ XEB \ X00 \ X00 \ X01B \ X00 \ X00 \ r \ x8c \ xc0s \ xd12 \ xdcH \ xa5 \ xda} - \ x1b \ xdcH \ xa9T \ x95 \ x81 \ x08 \ x00 \ xdcH \ xa9_ \ xd2 \ xc2n \ xe1 \ xdcH \ xa9_ \ xd2 \ xc6 \ xca \ x1c'

,我想的是:

Peer Clock Stratum: secondary reference (2) 
Peer Polling Interval: 10 (1024 sec) 
Peer Clock Precision: 0.000000 sec 
Root Delay: 0.0054 sec 
Root Dispersion: 0.0529 sec 
Reference ID: 192.115.209.50 
Reference Timestamp: Feb 10, 2017 20:49:30.488969000 UTC 
Origin Timestamp: Feb 10, 2017 21:04:20.584000000 UTC 
Receive Timestamp: Feb 10, 2017 21:04:31.823279000 UTC 
Transmit Timestamp: Feb 10, 2017 21:04:31.823345000 UTC 
+0

在導入語句中*之前添加一個空格,併發布所有變量的調試消息。此外,嘗試使用內置解碼功能解碼數據 –

+0

我試着解碼它,但它不工作..不知道爲什麼。 –

+0

發佈所有變量的調試,所以我們可以提供幫助。 –

回答

0

試着做以下幾點:

data = data.replace("\\", "\\\\") 
data.decode('string-escape') 
print data 
+0

不做任何事情,字符串保持不變 –

0

原來你可以讓數據轉化爲一個N​​TP

data= NTP(data) 

,我得到了我想要的。