erwewwewe 发表于 2017-3-16 14:25:19

python使用nmap端口扫描

第一版:只支持以逗号分隔的端口,不支持端口范围

Firstly:      sudo apt-get install nmap

Secondly:pip install python-nmap

Thirdly:copy the code bellow to a file likescan_network.py

    #!/usr/bin/env python

    import nmap

    import optparse


    def nmapScan(tgtHost,tgtPort):

      nmScan = nmap.PortScanner()

      nmScan.scan(tgtHost,tgtPort)

      state=nmScan['tcp']['state']

      print ("[*] " + tgtHost + " tcp/"+tgtPort +" "+state)


    def main():

      parser = optparse.OptionParser('usage %prog '+\

                                       '-H <target host> -p <target port>')

      parser.add_option('-H', dest='tgtHost', type='string',\

                        help='specify target host')

      parser.add_option('-p', dest='tgtPort', type='string',\

                        help='specify target port separated by comma')

      

      (options, args) = parser.parse_args()

      

      tgtHost = options.tgtHost

      tgtPorts = str(options.tgtPort).split(',')

      

      if (tgtHost == None) | (tgtPorts == None):

            print (parser.usage)

            exit(0)

      for tgtPort in tgtPorts:

            nmapScan(tgtHost, tgtPort)



    if __name__ == '__main__':

      main


Forthly:chmod +xscan_network.py   

fifthly:      ./scan_network.py -H 192.168.1.1 -p 22,23


第二版:支持以逗号分割及以-分割的端口范围

#!/usr/bin/env python
import nmap
import optparse
def nmapScan(tgtHost,tgtPort):
    nmScan = nmap.PortScanner()
    nmScan.scan(tgtHost,tgtPort)
    state=nmScan['tcp']['state']
    print ("[*] " + tgtHost + " tcp/"+tgtPort +" "+state)

def main():
    parser = optparse.OptionParser('usage %prog '+\
                                 '-H <target host> -p <target port>')
    parser.add_option('-H', dest='tgtHost', type='string',\
                      help='specify target host')
    parser.add_option('-p', dest='tgtPort', type='string',\
                      help='specify target port separated by comma')

    (options, args) = parser.parse_args()

    tgtHost = options.tgtHost



######this code bellow is to support scan port range like 66-88

    tgtPorts = []
    tgtPorts_cache = str(options.tgtPort).split(',')
    i = int(len(tgtPorts_cache))
    for m in range( 0,i ):
      tgtPorts_split = str(tgtPorts_cache).split('-')
      if(len(tgtPorts_split) < 2):
            tgtPorts.extend(tgtPorts_split)
            #print(tgtPorts)
      else:
            for n in range(int(tgtPorts_split),int(tgtPorts_split)+1):
                tgtPorts.append(str(n))
                #print(tgtPorts)

######above the tgtPorts are the ports list you want to scann

    #tgtPorts = str(options.tgtPort).split(',')   
    if (tgtHost == None) | (tgtPorts == None):
      print (parser.usage)
      exit(0)
    for tgtPort in tgtPorts:
      nmapScan(tgtHost, tgtPort)


if __name__ == '__main__':
    main()
页: [1]
查看完整版本: python使用nmap端口扫描