当前位置:   article > 正文

Python编程--使用NMAP端口扫描_使用nmap编写python脚本端口扫描

使用nmap编写python脚本端口扫描

Python编程–使用NMAP端口扫描

安装好Python-Namp模块,(pip install python-nmap)。创建一个PortScanner()类对象,这使我们能用这个对象完成扫描操作。PortScanner类有一个scan()函数,它可将目标和端口的列表作为参数输入,并对它们进行基本的Nmap扫描。另外,还可以把目标主机的地址/端口放入数组中备查,并打印出端口的状态。示例代码如下:

# 导入模块
import nmap
import optparse

# 定义nmapScan函数,参数为目标主机和目标端口
def nmapScan(tgtHost, tgtPort):
  	# 实例化nmap端口扫描对象
    nmScan = nmap.PortScanner()
    # 执行scan()函数
    nmScan.scan(tgtHost, tgtPort)
		# 获取tcp协议对应的端口状态
    state = nmScan[tgtHost]['tcp'][int(tgtPort)]['state']
    print(f"[+] {tgtHost} tcp/{tgtPort} {state}")

# 定义主函数
def main():
   # 实例化语法对象
    parser = optparse.OptionParser('Usage %prog -H <target host> -p <target port>')
		# 添加—H, -p参数选项,定义变量名和类型,还有帮助说明
    parser.add_option('-H', dest = 'tgtHost', type = 'string', help = 'specify target host')
    parser.add_option('-p', dest = 'tgtPort', type = 'string', help = 'specify target port')
		# 生成语法参数元组
    (options, args) = parser.parse_args()
    tgtHost = options.tgtHost
    tgtPorts = str(options.tgtPort).split(', ')

    if tgtHost == None or tgtPorts[0] == None:
        print(parser.usage)
        exit(0)

    for tgtPort in tgtPorts:
        nmapScan(tgtHost, tgtPort)


if __name__ == '__main__':
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

执行这个脚本,运行结果如下图:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/599482
推荐阅读
相关标签
  

闽ICP备14008679号