|  |  | 
builtins.Exception(builtins.BaseException)
PortScannerError
builtins.dict(builtins.object)
PortScannerHostDict
builtins.object
PortScanner
PortScannerAsync
PortScannerYield
 
 
| class PortScanner(builtins.object)
 |  |  | PortScanner class allows to use nmap from python 
 |  |  | Methods defined here: 
 __getitem__(self, host)returns a host detail
 __init__(self, nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', '/opt/local/bin/nmap'))Initialize PortScanner module
 * detects nmap on the system and nmap version
 * may raise PortScannerError exception if nmap is not found in the path
 
 :param nmap_search_path: tupple of string where to search for nmap executable. Change this if you want to use a specific version of nmap.
 :returns: nothing
 all_hosts(self)returns a sorted list of all hosts
 analyse_nmap_xml_scan(self, nmap_xml_output=None, nmap_err='', nmap_err_keep_trace='', nmap_warn_keep_trace='')Analyses NMAP xml scan ouput
 May raise PortScannerError exception if nmap output was not xml
 
 Test existance of the following key to know if something went wrong : ['nmap']['scaninfo']['error']
 If not present, everything was ok.
 
 :param nmap_xml_output: xml string to analyse
 :returns: scan_result as dictionnary
 command_line(self)returns command line used for the scan
 may raise AssertionError exception if called before scanning
 csv(self)returns CSV output as text
 Example :
 host;hostname;hostname_type;protocol;port;name;state;product;extrainfo;reason;version;conf;cpe
 127.0.0.1;localhost;PTR;tcp;22;ssh;open;OpenSSH;protocol 2.0;syn-ack;5.9p1 Debian 5ubuntu1;10;cpe
 127.0.0.1;localhost;PTR;tcp;23;telnet;closed;;;conn-refused;;3;
 127.0.0.1;localhost;PTR;tcp;24;priv-mail;closed;;;conn-refused;;3;
 get_nmap_last_output(self)Returns the last text output of nmap in raw textthis may be used for debugging purpose
 
 :returns: string containing the last text output of nmap in raw text
 has_host(self, host)returns True if host has result, False otherwise
 listscan(self, hosts='127.0.0.1')do not scan but interpret target hosts and return a list a hosts
 nmap_version(self)returns nmap version if detected (int version, int subversion)or (0, 0) if unknown
 :returns: (nmap_version_number, nmap_subversion_number)
 scan(self, hosts='127.0.0.1', ports=None, arguments='-sV', sudo=False)Scan given hosts
 May raise PortScannerError exception if nmap output was not xml
 
 Test existance of the following key to know
 if something went wrong : ['nmap']['scaninfo']['error']
 If not present, everything was ok.
 
 :param hosts: string for hosts as nmap use it 'scanme.nmap.org' or '198.116.0-255.1-127' or '216.163.128.20/20'
 :param ports: string for ports as nmap use it '22,53,110,143-4564'
 :param arguments: string of arguments for nmap '-sU -sX -sC'
 :param sudo: launch nmap with sudo if True
 
 :returns: scan_result as dictionnary
 scaninfo(self)returns scaninfo structure{'tcp': {'services': '22', 'method': 'connect'}}
 
 may raise AssertionError exception if called before scanning
 scanstats(self)returns scanstats structure{'uphosts': '3', 'timestr': 'Thu Jun  3 21:45:07 2010', 'downhosts': '253', 'totalhosts': '256', 'elapsed': '5.79'}
 
 may raise AssertionError exception if called before scanning
 Data descriptors defined here:
 
 __dict__dictionary for instance variables (if defined)
 __weakref__list of weak references to the object (if defined)
 |  
 
| class PortScannerAsync(builtins.object)
 |  |  | PortScannerAsync allows to use nmap from python asynchronously for each host scanned, callback is called with scan result for the host
 
 |  |  | Methods defined here: 
 __del__(self)Cleanup when deleted
 __init__(self)Initialize the module
 * detects nmap on the system and nmap version
 * may raise PortScannerError exception if nmap is not found in the path
 scan(self, hosts='127.0.0.1', ports=None, arguments='-sV', callback=None, sudo=False)Scan given hosts in a separate process and return host by host result using callback function
 PortScannerError exception from standard nmap is catched and you won't know about but get None as scan_data
 
 :param hosts: string for hosts as nmap use it 'scanme.nmap.org' or '198.116.0-255.1-127' or '216.163.128.20/20'
 :param ports: string for ports as nmap use it '22,53,110,143-4564'
 :param arguments: string of arguments for nmap '-sU -sX -sC'
 :param callback: callback function which takes (host, scan_data) as arguments
 :param sudo: launch nmap with sudo if true
 still_scanning(self):returns: True if a scan is currently running, False otherwise
 stop(self)Stop the current scan process
 wait(self, timeout=None)Wait for the current scan process to finish, or timeout
 :param timeout: default = None, wait timeout seconds
 Data descriptors defined here:
 
 __dict__dictionary for instance variables (if defined)
 __weakref__list of weak references to the object (if defined)
 |  
 
| class PortScannerError(builtins.Exception)
 |  |  | Exception error class for PortScanner class 
 |  |  | Method resolution order:PortScannerErrorbuiltins.Exceptionbuiltins.BaseExceptionbuiltins.object
 Methods defined here:
 
 __init__(self, value)
 __repr__(self)
 __str__(self)
 Data descriptors defined here:
 
 __weakref__list of weak references to the object (if defined)
 Methods inherited from builtins.Exception:
 
 __new__(*args, **kwargs) from builtins.typeCreate and return a new object.  See help(type) for accurate signature.
 Methods inherited from builtins.BaseException:
 
 __delattr__(self, name, /)Implement delattr(self, name).
 __getattribute__(self, name, /)Return getattr(self, name).
 __reduce__(...)
 __setattr__(self, name, value, /)Implement setattr(self, name, value).
 __setstate__(...)
 with_traceback(...)Exception.with_traceback(tb) --set self.__traceback__ to tb and return self.
 Data descriptors inherited from builtins.BaseException:
 
 __cause__exception cause
 __context__exception context
 __dict__
 __suppress_context__
 __traceback__
 args
 |  
 
| class PortScannerHostDict(builtins.dict)
 |  |  | Special dictionnary class for storing and accessing host scan result 
 |  |  | Method resolution order:PortScannerHostDictbuiltins.dictbuiltins.object
 Methods defined here:
 
 all_ip(self):returns: list of ip ports
 all_protocols(self):returns: a list of all scanned protocols
 all_sctp(self):returns: list of sctp ports
 all_tcp(self):returns: list of tcp ports
 all_udp(self):returns: list of udp ports
 has_ip(self, port):param port: (int) ip port:returns: True if ip port has info, False otherwise
 has_sctp(self, port):returns: True if sctp port has info, False otherwise
 has_tcp(self, port):param port: (int) tcp port:returns: True if tcp port has info, False otherwise
 has_udp(self, port):param port: (int) udp port:returns: True if udp port has info, False otherwise
 hostname(self)For compatibility purpose...:returns: try to return the user record or the first hostname of the list hostnames
 hostnames(self):returns: list of hostnames
 ip(self, port):param port: (int) ip port:returns: info for ip port
 sctp(self, port):returns: info for sctp port
 state(self):returns: host state
 tcp(self, port):param port: (int) tcp port:returns: info for tpc port
 udp(self, port):param port: (int) udp port:returns: info for udp port
 uptime(self):returns: host state
 Data descriptors defined here:
 
 __dict__dictionary for instance variables (if defined)
 __weakref__list of weak references to the object (if defined)
 Methods inherited from builtins.dict:
 
 __contains__(self, key, /)True if D has a key k, else False.
 __delitem__(self, key, /)Delete self[key].
 __eq__(self, value, /)Return self==value.
 __ge__(self, value, /)Return self>=value.
 __getattribute__(self, name, /)Return getattr(self, name).
 __getitem__(...)x.__getitem__(y) <==> x[y]
 __gt__(self, value, /)Return self>value.
 __init__(self, /, *args, **kwargs)Initialize self.  See help(type(self)) for accurate signature.
 __iter__(self, /)Implement iter(self).
 __le__(self, value, /)Return self<=value.
 __len__(self, /)Return len(self).
 __lt__(self, value, /)Return self<value.
 __ne__(self, value, /)Return self!=value.
 __new__(*args, **kwargs) from builtins.typeCreate and return a new object.  See help(type) for accurate signature.
 __repr__(self, /)Return repr(self).
 __setitem__(self, key, value, /)Set self[key] to value.
 __sizeof__(...)D.__sizeof__() -> size of D in memory, in bytes
 clear(...)D.clear() -> None.  Remove all items from D.
 copy(...)D.copy() -> a shallow copy of D
 fromkeys(iterable, value=None, /) from builtins.typeReturns a new dict with keys from iterable and values equal to value.
 get(...)D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
 items(...)D.items() -> a set-like object providing a view on D's items
 keys(...)D.keys() -> a set-like object providing a view on D's keys
 pop(...)D.pop(k[,d]) -> v, remove specified key and return the corresponding value.If key is not found, d is returned if given, otherwise KeyError is raised
 popitem(...)D.popitem() -> (k, v), remove and return some (key, value) pair as a2-tuple; but raise KeyError if D is empty.
 setdefault(...)D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
 update(...)D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
 If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
 In either case, this is followed by: for k in F:  D[k] = F[k]
 values(...)D.values() -> an object providing a view on D's values
 Data and other attributes inherited from builtins.dict:
 
 __hash__ = None
 |  
 
| class PortScannerYield(PortScannerAsync)
 |  |  | PortScannerYield allows to use nmap from python with a generator for each host scanned, yield is called with scan result for the host
 
 |  |  | Method resolution order:PortScannerYieldPortScannerAsyncbuiltins.object
 Methods defined here:
 
 __init__(self)Initialize the module
 * detects nmap on the system and nmap version
 * may raise PortScannerError exception if nmap is not found in the path
 scan(self, hosts='127.0.0.1', ports=None, arguments='-sV', sudo=False)Scan given hosts in a separate process and return host by host result using callback function
 PortScannerError exception from standard nmap is catched and you won't know about it
 
 :param hosts: string for hosts as nmap use it 'scanme.nmap.org' or '198.116.0-255.1-127' or '216.163.128.20/20'
 :param ports: string for ports as nmap use it '22,53,110,143-4564'
 :param arguments: string of arguments for nmap '-sU -sX -sC'
 :param callback: callback function which takes (host, scan_data) as arguments
 :param sudo: launch nmap with sudo if true
 still_scanning(self)
 stop(self)
 wait(self, timeout=None)
 Methods inherited from PortScannerAsync:
 
 __del__(self)Cleanup when deleted
 Data descriptors inherited from PortScannerAsync:
 
 __dict__dictionary for instance variables (if defined)
 __weakref__list of weak references to the object (if defined)
 |  |