1. 程式人生 > >python 學習筆記 python-nmap

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 

[[email protected] ~]# 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()

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']))