Im пытается реализовать опцию --verbose
в моем скрипте. Идея состоит в том, чтобы включить дополнительную печать ошибок и т. Д. Для отладки, но по какой-то причине она, похоже, не работает. Ive попробовал несколько вариантов заявления if verbose
, но без радости. Я надеюсь, кто-то может указать мне в правильном направлении?Обработка ошибок с подробным результатом
CLI Пример
./attack2.py -f wordfile.txt -d google.com --verbose 1
CLI ВЫХОД
[email protected]:~$ ./attack2.py -f wordfile.txt -d google.com --verbose 1
173.194.34.149
173.194.34.130
[email protected]:~$
ARG ПЕЧАТЬ
{'--domain': 'google.com',
'--file': 'wordfile.txt',
'--help': False,
'--thread': False,
'--verbose': True,
'10': False,
'<1>': '1'}
КОД
#!/usr/bin/python
"""
Description:
Basic Domain bruteforcer
Usage:
attack2.py (-f <file>) (-d <domain>) [-t 10] [-v <1>]
attack2.py -h | --help
Arguments:
-f --file File to read potential Sub-domains from. (Required)
-d --domain Domain to bruteforce. (Required)
Options:
-h --help Show this screen.
-p --proxy Proxy address and port. [default: http://127.0.0.1:8080] (Optional)
-t --thread Thread count. (Optional)
-v --verbose Turn debug on. (Optional)
"""
import socket
from docopt import docopt
def fread(dwords):
flist = open(dwords).readlines()
return [s.replace('\n', '.') for s in flist]
def subcheck(subdomain, domain, verbose):
vdomain = {}
for sub in subdomain:
try:
check = socket.gethostbyname(sub + domain)
vdomain[sub + domain] = check
except socket.gaierror, e:
if verbose == True:
print arguments
print e, sub + domain
else:
pass
return vdomain
if __name__ == "__main__":
arguments = docopt(__doc__, version='0.1a')
fread(arguments['--file'])
returned_list = fread(arguments['--file'])
returned_domains = subcheck(returned_list, arguments['--domain'], ['--verbose'])
Почему бы не использовать http://docs.python.org/2/library/argparse.html#module-argparse? – funerr
Почему вам не нравится использовать [argparse] (http://docs.python.org/3/library/argparse.html) и [logging] (http://docs.python.org/3/library/ logging.html)? – user3159253
@ agam360: потому что другой ответ об использовании 'getopt' рекомендуется' docopt' для OP. Это имеет значение здесь? –