| import gradio as gr |
| import os |
| from wakeonlan import send_magic_packet |
| import socket |
|
|
| |
| MAC = "dc:4a:3e:9a:eb:87" |
| PUBLIC_IP = "154.254.93.204" |
|
|
| def wake_pc(): |
| try: |
| send_magic_packet(MAC) |
| return f"โ
Wake-on-LAN signal sent to {MAC} ({PUBLIC_IP})" |
| except Exception as e: |
| return f"โ Error: {str(e)}" |
|
|
| def ping_pc(): |
| try: |
| response = os.system(f"ping -c 1 {PUBLIC_IP}" if os.name != "nt" else f"ping -n 1 {PUBLIC_IP}") |
| if response == 0: |
| return f"โ
{PUBLIC_IP} is Online" |
| else: |
| return f"โ ๏ธ {PUBLIC_IP} is Offline" |
| except Exception as e: |
| return f"โ Error: {str(e)}" |
|
|
| |
| with gr.Blocks() as demo: |
| gr.Markdown("## ๐ Remote PC Controller (Wake-on-LAN + Ping)") |
|
|
| with gr.Row(): |
| wake_btn = gr.Button("๐ Wake PC") |
| ping_btn = gr.Button("๐ก Ping PC") |
|
|
| output = gr.Textbox(label="Result") |
|
|
| wake_btn.click(fn=wake_pc, inputs=None, outputs=output) |
| ping_btn.click(fn=ping_pc, inputs=None, outputs=output) |
|
|
| |
| if __name__ == "__main__": |
| demo.launch(server_name="0.0.0.0", server_port=7860) |
|
|