From 15782908db3c506b98d00f37158b970543b28ca2 Mon Sep 17 00:00:00 2001 From: jesopo Date: Tue, 8 Oct 2019 15:46:15 +0100 Subject: add !isupraw - to check if a tcp connection is possible to a target closes #120 --- modules/isup.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'modules') diff --git a/modules/isup.py b/modules/isup.py index 3251718a..55f00479 100644 --- a/modules/isup.py +++ b/modules/isup.py @@ -1,3 +1,4 @@ +import socket from src import ModuleManager, utils class Module(ModuleManager.BaseModule): @@ -18,3 +19,29 @@ class Module(ModuleManager.BaseModule): event["stdout"].write("%s looks up to me (HTTP %d)" % (url, response.code)) + + @utils.hook("received.command.isupraw") + @utils.kwarg("min_args", 1) + @utils.kwarg("help", "Check if a given hostname:port is up or not") + @utils.kwarg("usage", "[:port]") + def isupraw(self, event): + hostname, _, port = event["args_split"][0].partition(":") + port = utils.parse.try_int(port or "80") + if port == None: + raise utils.EventError("Port must be a number") + + error = None + try: + with utils.deadline(seconds=5): + socket.create_connection((hostname, port)) + except utils.DeadlineExceededException: + error = "timed out" + except Exception as e: + error = str(e) + + if error == None: + event["stdout"].write("%s:%d looks up to me" % (hostname, port)) + else: + event["stderr"].write("%s:%d looks down to me (%s)" % + (hostname, port, error)) + -- cgit v1.3.1-10-gc9f91