import socket import requests # Herkese açık IP adresini belirlemek için httpbin.org servisini kullanarak bir istek yapalım def get_public_ip(): try: response = requests.get('https://httpbin.org/ip') if response.status_code == 200: return response.json()['origin'] except: pass return None # Sunucunun herkese açık IP adresini alalım HOST = get_public_ip() if HOST is None: print("Herkese açık IP adresi alınamadı. Sunucu başlatılamadı.") exit() PORT = 65432 # Sunucunun çalıştığı port with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket: server_socket.bind((HOST, PORT)) server_socket.listen() print(f"Sunucu başlatıldı, {HOST}:{PORT} üzerinde istemci bekleniyor...") while True: conn, addr = server_socket.accept() with conn: print('Bağlantı adresi:', addr) while True: data = conn.recv(1024) if not data: break elif data.decode() == "sıcaklık_güncelle": yeni_sıcaklık = float(conn.recv(1024).decode()) response = ev.sıcaklık_güncelle(yeni_sıcaklık) elif data.decode() == "ışık_kontrol": durum = conn.recv(1024).decode() response = ev.ışık_kontrol(durum.lower() == "açık") elif data.decode() == "hareket_algılandı": response = ev.hareket_algılandı() elif data.decode() == "ev_durumu_görüntüle": response = ev.ev_durumu_görüntüle() else: response = "Geçersiz istek" conn.sendall(response.encode())