python 学习笔记 python-nmap

本文参考的是刘天斯的《python 自动化运维》,python-nmap 可以扫描端口,代码本身不是很难,但在运行脚本中老是提示找不到nmap ,提示路径中没有,可明明已经安装了nmap包,查找各种资料,折腾半天,原来还需要安装python-nmap 包,且直接pip安装都不行,必要按如下安装

yum install nmap    这个包需要yum 安装,不能pip 安装

yum install python-pip  安装pip

pip  install python-nmap     pip 安装python-nmap 

[root@localhost ~]# cat nmap1.py 
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
import nmap
scan_row=[]

input_data = raw_input('please input hosts and port:')

scan_row = input_data.split(" ")

if len(scan_row)!=2:
    print "INPUT errors,example \"192.168.1.0/24 80,443,22\""
    sys.exit(0)
hosts=scan_row[0]
port=scan_row[1]


try:
     nm=nmap.PortScanner()

扫描二维码关注公众号,回复: 4932078 查看本文章


except  nmap.PortScannerError:
    print('Nmap not found',sys.exc_info()[0])
    sys.exit(0)

except:
    print("unexpectd error:",sys.exc_info()[0])
    sys.exit(0)


try:
    nm.scan(hosts=hosts,arguments='-v -sS -p'+port)
except Exception,e:
    print "SCAN erro :"+str(e)


for host in nm.all_hosts():
    print ('________________________________________')
    print ('Host:%s(%s)' %(host,nm[host].hostname()))
    print ('state:%s' % nm[host].state())


    for proto in nm[host].all_protocols():
        print ('__________________')
        print ('Protocol:%s' % proto)

        lport=nm[host][proto].keys()
        lport.sort()
        for port in lport:
            print('port:%s\tstate:%s'%(port,nm[host][proto][port]['state']))
 

猜你喜欢

转载自blog.csdn.net/maibm/article/details/83057780