使用pywifi库进行设备wifi信息扫描,并打印ssid和signal,但是遇到问题名称重复输出以及中文乱码无法解决

-- coding: utf-8 --

import pywifi
import time

wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0]

iface.scan()
time.sleep(8)
results = iface.scan_results()

signalNum = 0
for result in results:
if result.ssid == ‘RUNWAY’:
if result.signal >= -55:
signalNum = 4
elif result.signal >= -70:
signalNum = 3
elif result.signal >= -85:
signalNum = 2
else:
signalNum = 1
print(result.ssid, signalNum)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是在QT中扫描附近WiFi打印SSID和信号强度的示例代码: ```cpp #include <QCoreApplication> #include <QList> #include <QNetworkInterface> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces(); foreach (QNetworkInterface interface, interfaces) { QList<QNetworkAddressEntry> entries = interface.addressEntries(); foreach (QNetworkAddressEntry entry, entries) { if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol) { QNetworkInterface::InterfaceFlags flags = interface.flags(); if (flags.testFlag(QNetworkInterface::IsUp) && !flags.testFlag(QNetworkInterface::IsLoopBack)) { QList<QNetworkConfiguration> configs = QNetworkConfiguration::allConfigurations(); foreach (QNetworkConfiguration config, configs) { if (config.bearerType() == QNetworkConfiguration::BearerWLAN) { QNetworkSession session(config); QList<QNetworkConfiguration> activeConfigs = session.configuration().childConfigurations(); foreach (QNetworkConfiguration activeConfig, activeConfigs) { if (activeConfig.name() == interface.name()) { QProcess process; QString command = "iwlist " + interface.name() + " scanning"; process.start(command); process.waitForFinished(); QString output = process.readAllStandardOutput(); QStringList lines = output.split("\n"); foreach (QString line, lines) { line = line.trimmed(); if (line.startsWith("ESSID:")) { QString ssid = line.mid(7, line.length() - 8); qDebug() << "SSID: " << ssid; } else if (line.startsWith("Signal level=")) { QString signalLevel = line.mid(14, line.length() - 17); qDebug() << "Signal level: " << signalLevel; } } } } } } } } } } return a.exec(); } ``` 该代码使用了`QNetworkInterface`和`QProcess`类来扫描附近的WiFi,并打印SSID和信号强度。需要注意的是,该代码只能在Linux系统中运行,并且需要安装`iwlist`命令行工具。在其他操作系统中,可能需要使用其他方式来扫描WiFi并获取SSID和信号强度。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值