我试图使用scapy和套接字发送NTP查询,但是当我收到日期时,我会以原始形式获取它。
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)
尝试执行以下操作:
data = data.replace("\\", "\\\\")
data.decode('string-escape')
print data
答案 1 :(得分:0)
事实证明,您可以将转弯数据转换为NTP
data= NTP(data)
我得到了我想要的东西。