app.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import subprocess
  2. from flask import Flask
  3. app = Flask(__name__)
  4. @app.route('/')
  5. def get_network_info():
  6. try:
  7. # Запустить команды для получения информации о сетевом интерфейсе и DNS
  8. interface_info = subprocess.check_output('ip addr show enp3s0', shell=True, text=True)
  9. dns_info = subprocess.check_output('cat /etc/resolv.conf | grep "nameserver"', shell=True, text=True)
  10. # Получить IP-адрес, широковещательный адрес сети и шлюз по умолчанию
  11. ip_address = subprocess.check_output('ip addr show enp3s0 | grep "inet " | awk \'{print $2}\'', shell=True, text=True).strip()
  12. broadcast_ip = subprocess.check_output('ip addr show enp3s0 | grep "inet " | awk \'{print $4}\'', shell=True, text=True).strip()
  13. default_gateway = subprocess.check_output('ip route show default | awk \'/default via/ {print $3}\'', shell=True, text=True).strip()
  14. # Форматирование информации в HTML
  15. info = f"""
  16. <html>
  17. <head>
  18. <title>Информация о сетевом интерфейсе</title>
  19. <style>
  20. body {{
  21. font-family: Arial, sans-serif;
  22. background-color: #f0f0f0;
  23. margin: 20px;
  24. }}
  25. h1 {{
  26. background-color: #007bff;
  27. color: #fff;
  28. padding: 10px;
  29. }}
  30. p {{
  31. background-color: #fff;
  32. padding: 10px;
  33. border: 1px solid #ccc;
  34. margin: 5px 0;
  35. }}
  36. </style>
  37. </head>
  38. <body>
  39. <h1>Настройки основного сетевого интерфейса - Created by gr704_opkol</h1>
  40. <p>IP-адрес: {ip_address}</p>
  41. <p>Широковещательный адрес сети: {broadcast_ip}</p>
  42. <p>Шлюз по умолчанию: {default_gateway}</p>
  43. <h2>Настройки DNS</h2>
  44. <p>{dns_info.replace("nameserver", "DNS-сервер:")}</p>
  45. </body>
  46. </html>
  47. """
  48. return info
  49. except Exception as e:
  50. return f'Ошибка: {str(e)}'
  51. if __name__ == '__main__':
  52. app.run(host='0.0.0.0', port=8080)