51 lines
1.2 KiB
Python
Executable File
51 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import os
|
|
import argparse
|
|
from prettytable import PrettyTable
|
|
|
|
TABLE_DNS = PrettyTable()
|
|
TABLE_DNS.hrules = True
|
|
DIG_CMD = 'dig {record} @{ns_server} {_type} +short'
|
|
DEFAULT_DNS_SERVERS = [
|
|
#добавить список любых DNS-серверов
|
|
]
|
|
|
|
parser = argparse.ArgumentParser(
|
|
description="Script for checking DNS records only.")
|
|
|
|
def get_params():
|
|
|
|
parser.add_argument(
|
|
"-t", "--type",
|
|
dest="_type",
|
|
default='',
|
|
metavar='A',
|
|
help="Type of record for check, default use A-record ")
|
|
|
|
parser.add_argument(
|
|
"-d", "--dns",
|
|
dest="record",
|
|
help="Domain for check",
|
|
metavar='i-free.com')
|
|
|
|
args = parser.parse_args()
|
|
return args
|
|
|
|
def main():
|
|
|
|
TABLE_DNS.field_names = ["NS-SERVER", "VALUE"]
|
|
params = get_params()
|
|
record = params.record
|
|
_type = params._type
|
|
|
|
for ns_server in DEFAULT_DNS_SERVERS:
|
|
cmd = DIG_CMD.format(record=record, _type=_type, ns_server=ns_server)
|
|
value = os.popen(cmd).read()
|
|
TABLE_DNS.add_row([ns_server, value.strip()])
|
|
|
|
print(TABLE_DNS)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|