File size: 1,026 Bytes
b2cff8f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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)