端口扫描python-nmap

源码参考刘天斯的《自动化运维》

#coding:utf-8
import sys 
import nmap


try:
    hosts = sys.argv[1]   #等待用户输入IP
    ports = sys.argv[2]   #等待用户输入port
except IndexError:
    print("for example:python xxx.py 192.168.1.1 20,80")
    sys.exit()


try:
    nm = nmap.PortScanner() #创建一个对象
    nm.scan(hosts=hosts, arguments=" -p "+ports) #-p 表示端口扫描 
except nmap.PortScannerError:
    print('nmap not found', sys.exc_info()[0])
    sys.exit()
except Exception as e:
    print("Unexpected error:", sys.exc_info()[0])
    print(str(e))
    sys.exit()

#对主机进行for循环
for host in nm.all_hosts():
    print('-'*50)
    print('Host: %s(%s)'%(host, nm[host].hostname()))
    print('State : %s'%(nm[host].state()))
    
    #对协议进行for循环
    for proto in nm[host].all_protocols():
        print('----------')
        print('Protocol : %s'%proto)
        lport = nm[host][proto].keys()
        lport.sort()  #端口排序

        #对端口进行for循环
        for port in lport:
            print('port : %s\tstate : %s'%(port, nm[host][proto][port]['state']))

编辑好之后,sudo执行这个文件,python2和python3都可以执行,只要都装了模块

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值