2017-02-10 6 views
1

Im пытается отправить запрос 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 \ п \ xeb \ x00 \ x00 \ x01b \ x00 \ x00 \ г \ 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

Отправьте отладку всех vars, чтобы мы могли помочь. –

ответ

0

Попробуйте сделать следующее:

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

Не делает ничего, строка остается той же. –

0

Оказывается, вы можете просто сделать данные превращаются в NTP

data= NTP(data) 

и я получил то, что я хотел.

Смежные вопросы