forked from platypush/platypush
Added nmap integration (closes #99)
This commit is contained in:
parent
1e342cc8a5
commit
f5b010c15c
5 changed files with 41 additions and 0 deletions
5
docs/source/platypush/plugins/nmap.rst
Normal file
5
docs/source/platypush/plugins/nmap.rst
Normal file
|
@ -0,0 +1,5 @@
|
|||
``platypush.plugins.nmap``
|
||||
==========================
|
||||
|
||||
.. automodule:: platypush.plugins.nmap
|
||||
:members:
|
|
@ -78,6 +78,7 @@ Plugins
|
|||
platypush/plugins/music.rst
|
||||
platypush/plugins/music.mpd.rst
|
||||
platypush/plugins/music.snapcast.rst
|
||||
platypush/plugins/nmap.rst
|
||||
platypush/plugins/pihole.rst
|
||||
platypush/plugins/ping.rst
|
||||
platypush/plugins/printer.cups.rst
|
||||
|
|
30
platypush/plugins/nmap.py
Normal file
30
platypush/plugins/nmap.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
from typing import Dict, Any
|
||||
|
||||
from platypush.plugins import Plugin, action
|
||||
|
||||
|
||||
class NmapPlugin(Plugin):
|
||||
"""
|
||||
Nmap network scanner/mapper integration.
|
||||
"""
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
@action
|
||||
def scan(self, hosts: str, ports: str, args: str, sudo: bool = False) -> Dict[str, Any]:
|
||||
"""
|
||||
Perform a port scan towards a certain host or network.
|
||||
|
||||
:param hosts: Host name/IP or IP subnet to scan (e.g. ``192.168.1.0/24``).
|
||||
:param ports: Port number, (comma-separated) list or (dash-separated) range to scan (default: all).
|
||||
:param args: Additional command line arguments for nmap.
|
||||
:param sudo: Execute nmap as root through sudo (default: ``False``).
|
||||
:return: Scan results, as an ip -> host map.
|
||||
"""
|
||||
import nmap
|
||||
nm = nmap.PortScanner()
|
||||
return nm.scan(hosts=hosts, ports=ports, arguments=args, sudo=sudo).get('scan')
|
||||
|
||||
|
||||
# vim:sw=4:ts=4:et:
|
|
@ -221,3 +221,6 @@ croniter
|
|||
# py-cpuinfo
|
||||
# psutil
|
||||
|
||||
# Support for nmap integration
|
||||
# python-nmap
|
||||
|
||||
|
|
2
setup.py
2
setup.py
|
@ -275,5 +275,7 @@ setup(
|
|||
'graphite': ['graphyte'],
|
||||
# Support for CPU and memory monitoring and info
|
||||
'sys': ['py-cpuinfo', 'psutil'],
|
||||
# Support for nmap integration
|
||||
'nmap': ['python-nmap'],
|
||||
},
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue