[ create a new paste ] login | about

Link: http://codepad.org/vTu1Uw7I    [ raw code | output | fork ]

Python, pasted on Jun 6:
#!/usr/bin/env python
import nmap                         # import nmap.py module
nm = nmap.PortScanner()             # instantiate nmap.PortScanner object
nm.scan('', '22-443')      # scan host, ports from 22 to 443
nm.command_line()                   # get command line used for the scan : nmap -oX - -p 22-443
nm.scaninfo()                       # get nmap scan informations {'tcp': {'services': '22-443', 'method': 'connect'}}
nm.all_hosts()                      # get all hosts that were scanned
nm[''].hostname()          # get hostname for host
nm[''].state()             # get state of host (up|down|unknown|skipped)
nm[''].all_protocols()     # get all scanned protocols ['tcp', 'udp'] in (ip|tcp|udp|sctp)
nm['']['tcp'].keys()       # get all ports for tcp protocol
nm[''].all_tcp()           # get all ports for tcp protocol (sorted version)
nm[''].all_udp()           # get all ports for udp protocol (sorted version)
nm[''].all_ip()            # get all ports for ip protocol (sorted version)
nm[''].all_sctp()          # get all ports for sctp protocol (sorted version)
nm[''].has_tcp(22)         # is there any information for port 22/tcp on host
nm['']['tcp'][22]          # get infos about port 22 in tcp on host
nm[''].tcp(22)             # get infos about port 22 in tcp on host
nm['']['tcp'][22]['state'] # get state of port 22/tcp on host (open

# a more usefull example :
for host in nm.all_hosts():
        print('Host : %s (%s)' % (host, nm[host].hostname()))
        print('State : %s' % nm[host].state())

        for proto in nm[host].all_protocols():
            print('Protocol : %s' % proto)

            lport = nm[host][proto].keys()
            for port in lport:
                print('port : %s\tstate : %s' % (port, nm[host][proto][port]['state']))

        # print result as CSV

    # If you want to do a pingsweep on network
        nm.scan(hosts='', arguments='-n -sP -PE -PA21,23,80,3389')
        hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
        for host, status in hosts_list:
          print('{0}:{1}'.format(host, status))

        print '----------------------------------------------------'
        # Asynchronous usage of PortScannerAsync
        nma = nmap.PortScannerAsync()
        def callback_result(host, scan_result):
         print '------------------'
         print host, scan_result
         nma.scan(hosts='', arguments='-sP', callback=callback_result)
         while nma.still_scanning():
          print("Waiting ...")
          # you can do whatever you want but I choose to wait after the end of the scan

Traceback (most recent call last):
  Line 2, in <module>
    import nmap                         # import nmap.py module
ImportError: No module named nmap

Create a new paste based on this one