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()


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值