datetime NSE Library — Nmap Scripting Engine documentation (original) (raw)

Functions

Functions for dealing with dates and timestamps

Author:

Copyright © Same as Nmap--See https://nmap.org/book/man-legal.html

Source: https://svn.nmap.org/nmap/nselib/datetime.lua

Functions

date_to_timestamp (date_t, offset)

Convert a date table into an integer timestamp.

format_difftime (t2, t1)

Format the difference between times t2 and t1into a string

format_time (interval, unit)

Format a time interval into a string

format_timestamp (t, offset)

Format a date and time (and optional time zone) for structured output.

record_skew (host, timestamp, received)

Record a time difference between the scanner and the target

Functions

date_to_timestamp (date_t, offset)

Convert a date table into an integer timestamp.

Unlike os.time, this does not assume that the date table represents a local time. Rather, it takes an optional offset number of seconds representing the time zone, and returns the timestamp that would result using that time zone as local time. If the offset is omitted or 0, the date table is interpreted as a UTC date. For example, 4:00 UTC is the same as 5:00 UTC+1:

date_to_timestamp({year=1970,month=1,day=1,hour=4,min=0,sec=0}) --> 14400 date_to_timestamp({year=1970,month=1,day=1,hour=4,min=0,sec=0}, 0) --> 14400 date_to_timestamp({year=1970,month=1,day=1,hour=5,min=0,sec=0}, 16060) --> 14400

And 4:00 UTC+1 is an earlier time:

date_to_timestamp({year=1970,month=1,day=1,hour=4,min=0,sec=0}, 16060) --> 10800

Parameters

date_t

offset

format_difftime (t2, t1)

Format the difference between times t2 and t1into a string

String is in one of the forms (signs may vary):

Parameters

t2

t1

format_time (interval, unit)

Format a time interval into a string

String is in the same format as format_difftime

Parameters

interval

A time interval

unit

The time unit division as a number. If interval is in milliseconds, this is 1000 for instance. Default: 1 (seconds)

Return value:

The time interval in string format

format_timestamp (t, offset)

Format a date and time (and optional time zone) for structured output.

Formatting is done according to RFC 3339 (a profile of ISO 8601), except that a time zone may be omitted to signify an unspecified local time zone. Time zones are given as an integer number of seconds from UTC. Use0 to mark UTC itself. Formatted strings with a time zone look like this:

format_timestamp(os.time(), 0) --> "2012-09-07T23:37:42+00:00" format_timestamp(os.time(), 26060) --> "2012-09-07T23:37:42+02:00"

Without a time zone they look like this:

format_timestamp(os.time()) --> "2012-09-07T23:37:42"

This function should be used for all dates emitted as part of NSE structured output.

Parameters

t

offset

record_skew (host, timestamp, received)

Record a time difference between the scanner and the target

The skew will be recorded in the host's registry for later retrieval and analysis. Adjusts for network distance by subtracting half the smoothed round-trip time.

Parameters

host

The host being scanned

timestamp

The target timestamp, in seconds.

received

The local time the stamp was received, in seconds.