暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python 查看 Wifi 信号源强度

生有可恋 2024-03-26
742

Wifi 信号强度是指在无线通信在信号传输中的强度或功率。它通常用来表示设备与 Wifi 接入点之间的通信质量。

信号强度通常以负值的分贝毫瓦(dBm)来表示,数值越大表示信号越强。例如,-30 dBm 是一个非常强的信号,而 -90 dBm 则是一个相对较弱的信号。一般来说,大于 -60 dBm 的信号被认为是很好的,而小于 -80 dBm 的信号可能会有问题。

Windows 下可以使用 pywifi 模块对 Wifi 信号进行扫描,Wifi 信号频率大于 5000000 的是 5G 信号,2.4G 信号的频率一般在 2400000 以上。

代码运行效果如下,dBm 绝对值越小代表信号越好:

代码如下:

    import pywifi
    import wcwidth


    wifi_list = []


    def align_text(text, width):
    """中文对齐"""
    text_width = wcwidth.wcswidth(text)
    if text_width < width:
    return text + ' ' * (width - text_width)
    else:
    return text




    def wifi_type(freq):
    if freq > 5000000:
    return '5G'
    else:
    return '2.4G'




    def custom_sort(x):
    return abs(int(x[2]))




    def scan_wifi_networks():
    wifi = pywifi.PyWiFi()
    # print(wifi.interfaces())
    iface = wifi.interfaces()[0]

    iface.scan()
    scan_result = iface.scan_results()

    for network in scan_result:
    # print(dir(network))
    # print(network.freq)
    ssid = network.ssid.encode('latin1').decode('UTF-8')
    wifi_list.append([ssid, wifi_type(network.freq), network.signal])


    scan_wifi_networks()


    for s in sorted(wifi_list, key=custom_sort):
    print("SSID: {} , {} dBm".format(align_text(s[0] + ' ' + s[1], 25), s[2]))

    使用前需要安装 pywifi 和 wcwidth 模块:

      pip install pywifi
      pip install wcwidth

      全文完。

      如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

      文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论