mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2025-07-16 13:24:32 +02:00
Initial commit
This commit is contained in:
commit
ed55724808
2505 changed files with 1136655 additions and 0 deletions
63
console/views.py
Normal file
63
console/views.py
Normal file
|
@ -0,0 +1,63 @@
|
|||
from wgwadmlibrary.tools import is_valid_ip_or_hostname
|
||||
from django.shortcuts import render
|
||||
from django.contrib.auth.decorators import login_required
|
||||
import subprocess
|
||||
|
||||
|
||||
@login_required
|
||||
def view_console(request):
|
||||
page_title = 'Console'
|
||||
requested_command = request.GET.get('command')
|
||||
command_target = request.GET.get('target', '')
|
||||
if command_target:
|
||||
if not is_valid_ip_or_hostname(command_target):
|
||||
command_target = ''
|
||||
|
||||
if requested_command == 'iptables':
|
||||
page_title = 'Console: iptables list'
|
||||
bash_command = ['bash', '-c', 'iptables -L -nv ; iptables -t nat -L -nv']
|
||||
elif requested_command == 'ifconfig':
|
||||
page_title = 'Console: ifconfig'
|
||||
bash_command = ['bash', '-c', 'ifconfig']
|
||||
elif requested_command == 'ps':
|
||||
page_title = 'Console: running processes'
|
||||
bash_command = ['bash', '-c', 'ps faux']
|
||||
elif requested_command == 'wgshow':
|
||||
page_title = 'Console: WireGuard show'
|
||||
bash_command = ['bash', '-c', 'wg show']
|
||||
elif requested_command == 'freem':
|
||||
page_title = 'Console: Memory usage'
|
||||
bash_command = ['bash', '-c', 'free -m']
|
||||
elif requested_command == 'route':
|
||||
page_title = 'Console: top'
|
||||
bash_command = ['bash', '-c', 'route -n']
|
||||
elif requested_command == 'top':
|
||||
page_title = 'Console: top'
|
||||
bash_command = ['bash', '-c', 'top -b -n 1']
|
||||
elif requested_command == 'ping':
|
||||
page_title = 'Console: ping ' + command_target
|
||||
bash_command = ['bash', '-c', 'ping -c 4 ' + command_target]
|
||||
elif requested_command == 'traceroute':
|
||||
page_title = 'Console: traceroute ' + command_target
|
||||
bash_command = ['bash', '-c', 'traceroute ' + command_target]
|
||||
else:
|
||||
bash_command = None
|
||||
command_output = ''
|
||||
command_success = False
|
||||
|
||||
if requested_command == 'ping' or requested_command == 'traceroute':
|
||||
if not command_target:
|
||||
command_output = requested_command + ': Invalid target'
|
||||
bash_command = None
|
||||
command_success = False
|
||||
|
||||
if bash_command:
|
||||
try:
|
||||
command_output = subprocess.check_output(bash_command, stderr=subprocess.STDOUT).decode('utf-8')
|
||||
command_success = True
|
||||
except subprocess.CalledProcessError as e:
|
||||
command_output = e.output.decode('utf-8')
|
||||
command_success = False
|
||||
|
||||
context = {'page_title': page_title, 'command_output': command_output, 'command_success': command_success}
|
||||
return render(request, 'console/console.html', context)
|
Loading…
Add table
Add a link
Reference in a new issue