我正在尝试改进我的python并使用Violent Python书来帮助我做到这一点。
其中一项任务是创建一个Python nmap扫描程序,我已经完成并可以成功扫描主机,检查端口列表。但是,扫描程序使用默认的-sV
开关进行版本扫描,但我想尝试实现一种方法来更改用户想要运行的扫描类型,即UDP等-sU
。 ..
(这是一个自签名的证书,所以你会收到警告......)
回到我的问题...当我尝试编写选项以指定不同的扫描选项时,例如UDP的-sU
,程序崩溃说需要另一个参数 - 这是IP要扫描的主机的地址,但我已经指定使用-H 172.16.133.136
开关。
我认为当我尝试使用不同的扫描功能时,我错过了一些东西,因为我认为指定一个不同的开关只会替换nmap.py使用的默认扫描类型(?)
有人可以解释我出错的地方吗?您可以在代码中看到我有评论,我试图实现其他选项,但唉,不成功。
<小时/> 编辑:--ping
开关,然后为此提供随机值时,我得到以下堆栈跟踪错误:
Traceback (most recent call last):
File "pyPortScanNmap.py", line 88, in <module>
main()
File "pyPortScanNmap.py", line 62, in main
parser.add_option("", dest = 'tcpScan', type = 'string', help = 'Run TCP Scan') # Run a TCP scan against the specified host(s)
File "/usr/lib/python2.7/optparse.py", line 1013, in add_option
option = self.option_class(*args, **kwargs)
File "/usr/lib/python2.7/optparse.py", line 566, in __init__
opts = self._check_opt_strings(opts)
File "/usr/lib/python2.7/optparse.py", line 586, in _check_opt_strings
raise TypeError("at least one option string must be supplied")
TypeError: at least one option string must be supplied