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