# app.py import speedtest import gradio as gr def run_speedtest(): """ Runs a speed test and returns download speed (Mbps), upload speed (Mbps), and ping (ms). """ st = speedtest.Speedtest() st.get_best_server() download_bps = st.download() upload_bps = st.upload() ping_ms = st.results.ping # Convert from bits per second to megabits per second download_mbps = round(download_bps / 1e6, 2) upload_mbps = round(upload_bps / 1e6, 2) return f"{download_mbps} Mbps", f"{upload_mbps} Mbps", f"{ping_ms:.2f} ms" # Build Gradio interface iface = gr.Interface( fn=run_speedtest, inputs=[], outputs=[ gr.Textbox(label="Download Speed"), gr.Textbox(label="Upload Speed"), gr.Textbox(label="Ping") ], title="Wi-Fi / Ethernet Speed Test", description="Click **Run Speed Test** to measure your current Internet download/upload speeds and ping." ) if __name__ == "__main__": iface.launch(server_name="0.0.0.0", server_port=7860)