python實現端口狀態掃描

要實現端口狀態掃描需要用到python的namp模塊。

先到地址:https://pypi.python.org/pypi/python-nmap下載namp的軟件包。

我這裏下載的是0.6.1版本,OS是centos 7。

執行如下命令安裝namp模塊:

cd python-nmap-0.6.1

python setup install


python實現代碼如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#python version:  Python 2.7.5


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 error! for example:192.168.18.128 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("unexcepten error:", sys.exc_info()[0])

  sys.exit(0)


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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章