import requests
import subprocess
from bs4 import BeautifulSoup
from django.http import HttpResponse
from django.shortcuts import render
def base(request) -> HttpResponse:
return HttpResponse("
Base views: Response - 200_OK
")
def base_info(request) -> HttpResponse:
return HttpResponse(" Info views: Response - 200_OK
Mironov Misha
")
def status_output(request) -> HttpResponse:
user_agent = request.META["HTTP_USER_AGENT"]
response = requests.get(url='https://2ip.ru/')
bs = BeautifulSoup(response.text, "lxml")
ip = bs.find('div', 'ip')
return HttpResponse(
f" IP: {ip.text}
IP: {user_agent}
Для безопасности изменены последние 2 "
f"числа (после точек)
"
)
def get_status_ipv4(request) -> HttpResponse:
get_info = subprocess.check_output(
["powershell.exe", "Get-NetIPConfiguration -InterfaceAlias Ethernet -Detailed"], shell=True
)
decoded = get_info.decode('ISO-8859-1').replace('\r', '')
return HttpResponse(
f'{decoded}
'
)
def post_status_ipv4(request):
if request.method == 'POST':
ip_addr = request.POST.get('ip_addr')
ip_mask = request.POST.get('ip_mask')
ip_dns = request.POST.get('ip_dns')
# -InterfaceAlias Ethernet - Это моя локальная, личная настройка. Её следует менять для других!
if ip_addr:
subprocess.call(
["powershell.exe", f"Set-NetIPAddress -InterfaceAlias Ethernet -IPAddress {ip_addr}"],
shell=True
)
if ip_mask:
subprocess.call(
["powershell.exe", f"Set-NetIPAddress -InterfaceAlias Ethernet -PrefixLength {ip_mask}"],
shell=True
)
if ip_dns:
subprocess.call(
["powershell.exe", f"Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses {ip_dns}"],
shell=True
)
return HttpResponse(
"Good news! Check your ip setting! ( win + R -> ncpa.cpl)
"
)
else:
return render(request, 'post_form.html')