Python Nmap参数解析

2024-06-26 10:04:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力改进我的python,并与暴力python一书一起帮助我做到这一点。在

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

我的代码在: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

Tags: inpy类型stringlibusr选项line