feat: 系统工具增加服务器时间及nmap工具 (#11078)

This commit is contained in:
jiangweidong
2023-07-28 10:40:48 +08:00
committed by GitHub
parent 1239ffd4c8
commit 1907c795c3
8 changed files with 115 additions and 28 deletions

View File

@@ -7,7 +7,7 @@ from channels.generic.websocket import JsonWebsocketConsumer
from common.db.utils import close_old_connections
from common.utils import get_logger
from .utils import verbose_ping, verbose_telnet
from .utils import verbose_ping, verbose_telnet, verbose_nmap
logger = get_logger(__name__)
@@ -24,27 +24,28 @@ class ToolsWebsocket(JsonWebsocketConsumer):
def send_msg(self, msg):
self.send_json({'msg': msg + '\r\n'})
def imitate_ping(self, dest_addr, timeout=3, count=5, psize=64):
def imitate_ping(self, dest_ip, timeout=3, count=5, psize=64):
"""
Send `count' ping with `psize' size to `dest_addr' with
Send `count' ping with `psize' size to `dest_ip' with
the given `timeout' and display the result.
"""
logger.info('receive request ping {}'.format(dest_addr))
verbose_ping(dest_addr, timeout, count, psize, display=self.send_msg)
logger.info('receive request ping {}'.format(dest_ip))
verbose_ping(dest_ip, timeout, count, psize, display=self.send_msg)
def imitate_telnet(self, dest_addr, port_num=23, timeout=10):
logger.info('receive request telnet {}'.format(dest_addr))
verbose_telnet(dest_addr, port_num, timeout, display=self.send_msg)
def imitate_telnet(self, dest_ip, dest_port=23, timeout=10):
logger.info('receive request telnet {}'.format(dest_ip))
verbose_telnet(dest_ip, dest_port, timeout, display=self.send_msg)
def imitate_nmap(self, dest_ip, dest_port=None, timeout=None):
logger.info('receive request nmap {}'.format(dest_ip))
verbose_nmap(dest_ip, dest_port, timeout, display=self.send_msg)
def receive(self, text_data=None, bytes_data=None, **kwargs):
data = json.loads(text_data)
tool_type = data.get('tool_type', 'Ping')
dest_addr = data.get('dest_addr')
if tool_type == 'Ping':
self.imitate_ping(dest_addr)
else:
port_num = data.get('port_num')
self.imitate_telnet(dest_addr, port_num)
tool_type = data.pop('tool_type', 'Ping')
tool_func = getattr(self, f'imitate_{tool_type.lower()}')
tool_func(**data)
self.close()
def disconnect(self, code):