Metadata-Version: 1.1
Name: python-nmap
Version: 0.1.4
Summary: This is a python class to use nmap and access scan results from python
Home-page: http://xael.org/norman/python/python-nmap/
Author: Alexandre Norman
Author-email: norman@xael.org
License: gpl-3.0.txt
Description: ===========
        python-nmap
        ===========
        
        python-nmap is a python library which helps in using nmap port scanner.
        It allows to easilly manipulate nmap scan results and will be a perfect
        tool for systems administrators who want to automatize scanning task
        and reports. It also supports nmap script outputs.
        
        Typical usage looks like:: 
        
            #!/usr/bin/env python
            import nmap                         # import nmap.py module
            nm = nmap.PortScanner()         # instantiate nmap.PortScanner object
            nm.scan('127.0.0.1', '22-443')      # scan host 127.0.0.1, ports from 22 to 443
            nm.command_line()                   # get command line used for the scan : nmap -oX - -p 22-443 127.0.0.1
            nm.scaninfo()                       # get nmap scan informations {'tcp': {'services': '22-443', 'method': 'connect'}}
            nm.all_hosts()                      # get all hosts that were scanned
            nm['127.0.0.1'].hostname()          # get hostname for host 127.0.0.1
            nm['127.0.0.1'].state()             # get state of host 127.0.0.1 (up|down|unknown|skipped) 
            nm['127.0.0.1'].all_protocols()     # get all scanned protocols ['tcp', 'udp'] in (ip|tcp|udp|sctp)
            nm['127.0.0.1']['tcp'].keys()       # get all ports for tcp protocol
            nm['127.0.0.1'].all_tcp()           # get all ports for tcp protocol (sorted version)
            nm['127.0.0.1'].all_udp()           # get all ports for udp protocol (sorted version)
            nm['127.0.0.1'].all_ip()            # get all ports for ip protocol (sorted version)
            nm['127.0.0.1'].all_sctp()          # get all ports for sctp protocol (sorted version)
            nm['127.0.0.1'].has_tcp(22)         # is there any information for port 22/tcp on host 127.0.0.1
            nm['127.0.0.1']['tcp'][22]          # get infos about port 22 in tcp on host 127.0.0.1
            nm['127.0.0.1'].tcp(22)             # get infos about port 22 in tcp on host 127.0.0.1
            nm['127.0.0.1']['tcp'][22]['state'] # get state of port 22/tcp on host 127.0.0.1 (open
        
        
            # a more usefull example :
            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']))
        
        
            print('----------------------------------------------------')
            # If you want to do a pingsweep on network 192.168.1.0/24:
            nm.scan(hosts='192.168.1.0/24', 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='192.168.1.0/30', arguments='-sP', callback=callback_result)
           while nma.still_scanning():
               print("Waiting ...")
               nma.wait(2)   # you can do whatever you want but I choose to wait after the end of the scan
        
        
        Homepage
        ========
        
        http://xael.org/norman/python/python-nmap/
        
        
        Changelog
        =========
        
        2010/06/07
        Patches from Steve 'Ashcrow' Milner <steve at gnulinux.net>
         - remove shebang from __init__.py as it is not a runnable script
         - allow use with ALPHA and BETA nmap releases
         - .has_key() is deprecated, replaced instances with in
         - move to using the print function for python2 and 3 usag
        
        
        2010/06/04
         - adding PortScanner.listscan
         - PortScanner.scan now returns scan_result
         - adding class PortScannerAsync (idea from Steve 'Ashcrow' Milner <steve at gnulinux.net>)
        
        2010/06/03
         - Import on google code
           svn checkout https://python-nmap.googlecode.com/svn/trunk/ python-nmap --username  XXXXX
         - added PortScanner.scanstats method
         - updated example.py and documentation for pingsweep
         - updated Makefile for generating documentation
        
        2010/03/09
         - Modified packaging. v0.1.1 [norman]
        
        2010/03/08
         - Initial release. v0.1.0 [norman]
        
Keywords: nmap,portscanner,network,sysadmin
Platform: Operating System :: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: OS Independent
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Networking
Classifier: Topic :: System :: Networking :: Firewalls
Classifier: Topic :: System :: Networking :: Monitoring
