Python Nmap - 参数解析

时间:2016-08-22 14:11:26

标签: python python-2.7 optparse

我正在尝试改进我的python并使用Violent Python书来帮助我做到这一点。

其中一项任务是创建一个Python nmap扫描程序,我已经完成并可以成功扫描主机,检查端口列表。但是,扫描程序使用默认的-sV开关进行版本扫描,但我想尝试实现一种方法来更改用户想要运行的扫描类型,即UDP等-sU。 ..

我的代码位于:https://absentia.mycorneroftheinter.net/james/violentPythonScripts/src/master/chapter2/pyPortScanNmap.py

(这是一个自签名的证书,所以你会收到警告......)

回到我的问题...当我尝试编写选项以指定不同的扫描选项时,例如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

0 个答案:

没有答案