diff --git a/scapy/layers/ntp.py b/scapy/layers/ntp.py index 566eb987e0b181c1006b86d5a3e6c1332703ccc3..6560e397c57a764687035beafe71d2f933cfa315 100644 --- a/scapy/layers/ntp.py +++ b/scapy/layers/ntp.py @@ -8,6 +8,7 @@ NTP (Network Time Protocol). """ import time +import datetime from scapy.packet import * from scapy.fields import * from scapy.layers.inet import UDP @@ -29,8 +30,10 @@ class TimeStampField(FixedPointField): return time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime(val-_NTP_BASETIME)) def any2i(self, pkt, val): - if type(val) is str: + if isinstance(val, basestring): val = int(time.mktime(time.strptime(val))) + _NTP_BASETIME + elif isinstance(val, datetime.datetime): + val = int(val.strftime("%s")) + _NTP_BASETIME return FixedPointField.any2i(self, pkt, val) def i2m(self, pkt, val):