最近是打算写个好用的

1
webdirscan

,毕竟现成的没找到几个好用的

所以发挥麒麟臂,自己写一套适合自己以及自己喜欢的web目录扫描工具,

也就当是巩固Python基础的一个过程。

前言

首先考虑到要做

1
webdirscan

就必须传入主机、字典、脚本语言等,所以就涉及到了命令行传入参数的问题,于是看了看其他的脚本都是如何接收参数,调用参数,我这里看的是

1
lijiejie

的子域名爆破工具,里面import了

1
argparse

模块,所以就去官方找了文档,这里对文档进行简单的翻译和理解。

没有接收参数(--help除外)

 

接收必须参数

简单接收一个参数

举个栗子,接收一个host参数并输出:

 

 

如果没有带参数,则返回:

 

给接收的参数添加帮助文字

举个例子,给上文的host添加帮助文字:

 

这个时候执行argparseStudy.py -h会返回:

 

设置接收参数的类型

这里以int型为例,当然也有string类型,这里还支持什么类型,我不知道.. 反正常用的就int和string吧...

 

以下是我输入string类型和int类型的返回结果:

 

输入aaa的时候因为不是int型,所以报错~

接收可选参数

接收需要传值的可选参数

比如做webdirscan需要输入文件后缀,如:php、jsp、aspx、asp,但这个参数是可选的:

 

以下是我可选参数的传入方式、并且不传该参数也不会报错~ 毕竟是可选参数:

 

接收无需传值的可选参数

比如我们做webdirscan的时候,如果传入

1
--thread

就启用多线程,不传入则单线程:

 

返回结果如下,如果我带上

1
--thread

则输出多线程:

 

短配置

缩短我们的参数,很多程序中都用单个字母代替,比如nmap的

1
-port

简写为

1
-p

,我们也可以这样:

 

运行结果如下:

 

大概就学习到这里,基本上常用的已经介绍了,其他少用的可以去看官方文档