import modules.server.server as server_mod def ping_from_server(server_from: str, server_to: str, action: str) -> str: stderr = '' action_for_sending = '' output1 = '' if server_to == '': return 'warning: enter a correct IP or DNS name' if action == 'nettools_ping': action_for_sending = 'ping -c 4 -W 1 -s 56 -O ' elif action == 'nettools_trace': action_for_sending = 'tracepath -m 10 ' action_for_sending = action_for_sending + server_to if server_from == 'localhost': output, stderr = server_mod.subprocess_execute(action_for_sending) else: action_for_sending = [action_for_sending] output = server_mod.ssh_command(server_from, action_for_sending, raw=1, timeout=15) if stderr != '': return f'error: {stderr}' for i in output: if i == ' ' or i == '': continue i = i.strip() if 'PING' in i: output1 += '' elif 'no reply' in i or 'no answer yet' in i or 'Too many hops' in i or '100% packet loss' in i: output1 += '' elif 'ms' in i and '100% packet loss' not in i: output1 += '' else: output1 += '' output1 += i + '
' return output1 def telnet_from_server(server_from: str, server_to: str, port_to: str) -> str: count_string = 0 stderr = '' output1 = '' if server_to == '': return 'warning: enter a correct IP or DNS name' if server_from == 'localhost': action_for_sending = f'echo "exit"|nc {server_to} {port_to} -t -w 1s' output, stderr = server_mod.subprocess_execute(action_for_sending) else: action_for_sending = [f'echo "exit"|nc {server_to} {port_to} -t -w 1s'] output = server_mod.ssh_command(server_from, action_for_sending, raw=1) if stderr != '': return f'error: {stderr[5:]}' for i in output: if i == ' ': continue i = i.strip() if i == 'Ncat: Connection timed out.': return f'error: {i[5:]}' output1 += i + '
' count_string += 1 if count_string > 1: break return output1 def nslookup_from_server(server_from: str, dns_name: str, record_type: str) -> str: count_string = 0 stderr = '' output1 = '' if dns_name == '': return 'warning: enter a correct DNS name' action_for_sending = f'dig {dns_name} {record_type} |grep -e "SERVER\|{dns_name}"' if server_from == 'localhost': output, stderr = server_mod.subprocess_execute(action_for_sending) else: action_for_sending = [action_for_sending] output = server_mod.ssh_command(server_from, action_for_sending, raw=1) if stderr != '': return 'error: ' + stderr[5:-1] output1 += f'The {dns_name} domain has the following records:' for i in output: if 'dig: command not found.' in i: return 'error: Install bind-utils before using NSLookup' if ';' in i and ';; SERVER:' not in i: continue if 'SOA' in i and record_type != 'SOA': return 'There are not any records for this type' if ';; SERVER:' in i: i = i[10:] output1 += '
From NS server:
' i = i.strip() output1 += '' + i + '
' count_string += 1 return output1