1import sys
2
3from twisted.internet import task
4from twisted.names import client
5
6
7def reverseNameFromIPAddress(address):
8    return ".".join(reversed(address.split("."))) + ".in-addr.arpa"
9
10
11def printResult(result):
12    answers, authority, additional = result
13    if answers:
14        a = answers[0]
15        print(f"{a.name.name} IN {a.payload}")
16
17
18def main(reactor, address):
19    d = client.lookupPointer(name=reverseNameFromIPAddress(address=address))
20    d.addCallback(printResult)
21    return d
22
23
24task.react(main, sys.argv[1:])
25