Mini Shell

Direktori : /usr/local/lib/python3.9/site-packages/agent360/plugins/
Upload File :
Current File : //usr/local/lib/python3.9/site-packages/agent360/plugins/tcpports.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket
import plugins


class Plugin(plugins.BasePlugin):
    __name__ = 'tcpports'

    def run(self, config):
        '''
        Checks if TCP ports are open.
        '''
        def is_port_open(host, port, timeout):
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.settimeout(timeout)  # Timeout for the connection attempt
            try:
                sock.connect((host, port))
                sock.close()
                return 1
            except socket.error:
                return 0

        results = dict()

        # Parse the config for the host-port pairs to check
        host_ports = config.get(__name__, 'host_ports').split(',')
        timeout = float(config.get(__name__, 'timeout'))  # Timeout for the connection attempt

        for host_port in host_ports:
            host, port = host_port.split(':')
            port = int(port)
            results[host_port] = {'available': is_port_open(host, port, timeout)}

        return results


if __name__ == '__main__':
    Plugin().execute()

Zerion Mini Shell 1.0