12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/usr/bin/env python
- import sys
- from optparse import OptionParser
- from .__version__ import __version__ as VERSION
- from .webtech import WebTech
- def split_on_comma(option, opt_str, value, parser):
- setattr(parser.values, option.dest, value.split(','))
- def main():
- """
- Main function when running from command line.
- """
- parser = OptionParser(prog="webtech", version="%prog {}".format(VERSION))
- parser.add_option(
- "-u", "--urls",
- help="url(s) to scan", type="string", action="callback", callback=split_on_comma)
- parser.add_option(
- "--urls-file", "--ul",
- help="url(s) list file to scan", type="string")
- parser.add_option(
- "--user-agent", "--ua",
- help="use this user agent")
- parser.add_option(
- "--random-user-agent", "--rua", action="store_true",
- help="use a random user agent", default=False)
- parser.add_option(
- "--database-file", "--db",
- help="custom database file")
- parser.add_option(
- "--json", "--oj", action="store_true",
- help="output json-encoded report", default=False)
- parser.add_option(
- "--grep", "--og", action="store_true",
- help="output grepable report", default=False)
- parser.add_option(
- "--update-db", "--udb", action="store_true",
- help="force update of remote db files", default=False)
- parser.add_option(
- "--timeout", type="float", help="maximum timeout for scrape requests", default=10)
- (options, _args) = parser.parse_args(sys.argv)
- options = vars(options)
- if options.get('urls') is None and options.get('urls_file') is None and options.get('update_db') is None:
- print("No URL(s) given!")
- parser.print_help()
- exit()
- wt = WebTech(options)
- wt.start()
- if __name__ == "__main__":
- main()
|