Pyng: DNSL check

Description

DNSL check provides flexible facilities to query DNS-based lists.

DNSL requires drill command to be present in $PATH.

Options

DNSL supports following options, which may be used upon creation of a new check object:

qaddr
Address to look up (required)
qzone
DNS zone for the search
qtype
Query type
reverse
Set to True to cause the check to fail if lookup returns nothing (useful for DNS whitelists)
dnssec
Set to True to enable DNSSEC in the query
server
Target server for the query
port
Port to connect to instead of the default of 53
proto
TCP or UDP transport for the connection
ipv
IP version to use when resolving addresses (IPv6 or IPv4)

In addition, DNSL supports following generic check settings:

desc
Check description
silent
Information about check runs is not output by certain runners
interval
Number of seconds between check runs
result
Require that check output matches result in order to consider check successful. During the matching, check output is evaluated as a list of lines of output without newlines. result may be provided in multiple ways:
alert
Callable (or a list of callables) to run in order to alert of check status changes
notify
Callable (or a list of callables) to run in order to notify of changes in check's output
run_condition
Callable to run to decide if check run should be skipped
run_threshold
Threshold for mean run time in order to consider check to be degraded
result_filter
Callable to run to filter check command output lines prior to matching check results
on_result
on_first
on_up
on_down
on_degrade
on_restore
on_change
Callable to run with the result of the check on the specified events

Example

# check DNS blacklist: address should not be listed
DNSL(
    '1.2.3.4', 'zen.spamhaus.org',
    server='localhost',
)

# check DNS whitelist: address should be listed
DNSL(
    '1.2.3.4', 'list.dnswl.org',
    reverse=True,
    server='localhost',
)
    

Return to Pyng