Загрузка данных


from http.server import BaseHTTPRequestHandler, HTTPServer
import json
import socket

connected_devices = {}

def get_ip():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        s.connect(('8.8.8.8', 80))
        IP = s.getsockname()[0]
    except Exception:
        IP = '127.0.0.1'
    finally:
        s.close()
    return IP

def get_device_name(ip):
    if ip in connected_devices:
        return connected_devices[ip]
    if ip.startswith("192.168.0."):
        name = f"Устройство ({ip})"
    else:
        name = f"Неизвестный ({ip})"
    connected_devices[ip] = name
    return name

class FakeServer(BaseHTTPRequestHandler):
    def do_POST(self):
        client_ip = self.client_address[0]
        device_name = get_device_name(client_ip)
        
        print("\n" + "=" * 50)
        print(f"[!] ВХОДЯЩИЙ СИГНАЛ: {device_name}")
        print(f"    Запрос: POST {self.path}")
        
        self.send_response(200)
        self.send_header('Content-type', 'application/json')
        self.end_headers()
        response = {"code": 0, "message": "Success"}
        self.wfile.write(json.dumps(response).encode('utf-8'))
        
        print("[+] Отправлено: УСПЕХ (code 0)")
        print("=" * 50)

    def do_GET(self):
        client_ip = self.client_address[0]
        device_name = get_device_name(client_ip)
        
        print("\n" + "=" * 50)
        print(f"[!] ВХОДЯЩИЙ СИГНАЛ: {device_name}")
        print(f"    Запрос: GET {self.path}")
        
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"OK")
        
        print("[+] Отправлено: OK")
        print("=" * 50)

my_ip = get_ip()
print("=" * 50)
print(f" IP ДЛЯ DNS: {my_ip}")
print("=" * 50)
print(" СЕРВЕР-РАДАР ЗАПУЩЕН")
print(" Ожидание подключения бойцов...")
print(" (Не закрывай это окно!)")
print("=" * 50)

server = HTTPServer(('0.0.0.0', 80), FakeServer)
server.serve_forever()