Skip to content

Commit 2e73392

Browse files
committed
Update dns_recon.py
1 parent 36f3e60 commit 2e73392

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

dns_recon.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
- Automated reporting and visualization
1818
1919
Usage:
20+
python dns_recon.py example.com
2021
python dns_recon.py --domain example.com
2122
python dns_recon.py --ip 192.168.1.1
2223
python dns_recon.py --range 192.168.1.0/24
@@ -116,6 +117,11 @@ def save_results(results, output, domain=None, ip=None, ip_range=None, dns_serve
116117
def parse_arguments():
117118
"""Parse command line arguments."""
118119
parser = argparse.ArgumentParser(description="DNS Reconnaissance Tool")
120+
121+
# Add a positional argument for domain
122+
parser.add_argument("domain", nargs="?", help="Target domain (positional argument)")
123+
124+
# Keep all the existing named arguments
119125
parser.add_argument("--domain", "-d", help="Target domain")
120126
parser.add_argument("--ip", "-i", help="Target IP address for reverse lookup")
121127
parser.add_argument("--range", "-r", help="IP range in CIDR notation (e.g., 192.168.1.0/24)")
@@ -129,14 +135,19 @@ def parse_arguments():
129135

130136
args = parser.parse_args()
131137

138+
# If positional domain is provided but --domain is not, use the positional one
139+
if args.domain and not args.domain:
140+
args.domain = args.domain
141+
132142
# Validate that at least one target is specified
133143
if not (args.domain or args.ip or args.range):
134-
parser.error("At least one target (--domain, --ip, or --range) must be specified")
144+
parser.error("At least one target (domain, --domain, --ip, or --range) must be specified")
135145

136146
return args
137147

138148
# Main DNS class
139149
class DNSRecon:
150+
# ... keep existing code (DNSRecon class definition, class methods)
140151
def __init__(self, domain=None, ip=None, ip_range=None, dns_servers=None,
141152
timeout=5, threads=10, verbose=False, output=None,
142153
subdomains=None, history=False):
@@ -593,8 +604,11 @@ def main():
593604
args = parse_arguments()
594605

595606
try:
607+
# Determine the domain from either positional or named argument
608+
domain = args.domain
609+
596610
recon = DNSRecon(
597-
domain=args.domain,
611+
domain=domain,
598612
ip=args.ip,
599613
ip_range=args.range,
600614
dns_servers=args.server,
@@ -615,3 +629,4 @@ def main():
615629

616630
if __name__ == "__main__":
617631
main()
632+

0 commit comments

Comments
 (0)