#!/usr/bin/env python3 import ipaddress import socket import sys if len(sys.argv) != 2: raise SystemExit(f"Usage: {sys.argv[0]} ") try: address = str(ipaddress.ip_address(sys.argv[1])) except ValueError as exc: raise SystemExit(f"Invalid IP address: {exc}") try: hostname, aliases, addresses = socket.gethostbyaddr(address) except socket.herror as exc: raise SystemExit(f"No reverse DNS hostname found for {address}: {exc}") print(f"IP address: {address}") print(f"Primary hostname: {hostname}") if aliases: print("Aliases:") for alias in aliases: print(f" {alias}") print("Resolved addresses:") for resolved in addresses: print(f" {resolved}")