yum install nmap -y  && pip install python-nmap
#!/usr/bin/env python
#coding:utf-8
import sys
import nmap

scan_row = []
try:
    hosts = sys.argv[1]
    port = sys.argv[2]
except IndexError:
    print "Uasge ./scanport.py ip port"
    sys.exit(1)

try:
    nm = nmap.PortScanner()
except namp.PortScannerError:
    print "Nmap not found",sys.enc_info()[0]
    sys.exit(2)
except:
    print("Unexpected error:",sys.exc_info()[0])
    sys.exit(3)

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

for host in nm.all_hosts():
    print "----------------------------------------------------------------------"
    print('Host : %s (%s)' % (host, nm[host].hostname()))    #输出主机及主机名
    print('State : %s' % nm[host].state())    #输出主机状态,如up、down
    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']))
其中主机输入支持所有表达方式,如www.qq.com、192.168.1.*、192.168.1.1-20、192.168.1.0/24等,
端口输入格式也非常灵活,如80,443,22、80,22-443。

results matching ""

    No results matching ""