python自动检测wifi是否能联网,断开wifi重新连接wifi的代码。

用python来控制wifi连接 1、python连接WiFi,需要使用pywifi包,安装pywifi:pip install pywifi 2、判断wifi连接状态: def wifi_connect_status(): wifi = pywifi.PyWiFi() iface = wifi.interfaces()[0] #acquire the first Wlan card,maybe not if iface.status() in [const.IFACE_CONNECTED,const.IFA 阅读详情
#文件名 pyWIFI.py
#python自动检测wifi是否能联网,断开wifi重新连接wifi的代码。

# 网上下载安装Python3.8
# 配置环境变量 以下为参考
# python环境变量 \Python38
# C:\Users\LRJ\AppData\Local\Programs\Python\Python38
# pip环境变量 \Python38\Scripts
# C:\Users\LRJ\AppData\Local\Programs\Python\Python38\Scripts

#模块下载命令
#pip install pywifi
#pip install comtypes
#pip install requests
#若嫌弃下载太慢 后缀增加网址去加速下载
#pip install pywifi -i https://pypi.tuna.tsinghua.edu.cn/simple
#pip install comtypes -i https://pypi.tuna.tsinghua.edu.cn/simple
#pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

import pywifi               #wifi模块
from pywifi import const
import time                 #定时器模块
import requests             #web网页模块

#判断wifi是否连接状态-------------------------------------------------------
def is_connected(wifi_inter):   
    if wifi_inter.status() in [const.IFACE_CONNECTED, const.IFACE_INACTIVE]:
        return True
    else:
        return False

#连接wifi-------------------------------------------------------
def connet_wifi(wifi_inter, wifi_profile):      
    wifi_inter.remove_all_network_profiles()    # 删除其它配置文件
    tmp_profile = wifi_inter.add_network_profile(wifi_profile)  # 加载配置文件
    wifi_inter.connect(tmp_profile)
    time.sleep(2)
    if wifi_inter.status() == const.IFACE_CONNECTED:
        return True
    else:
        return False

# 设置wifi-------------------------------------------------------
def set_profile():
    wifi_profile = pywifi.Profile()                 # 配置文件
    wifi_profile.ssid = "MERCURY_E452"              # wifi名称
    wifi_profile.auth = const.AUTH_ALG_OPEN         # 需要密码
    wifi_profile.akm.append(const.AKM_TYPE_WPA2PSK) # 加密类型
    wifi_profile.cipher = const.CIPHER_TYPE_CCMP    # 加密单元
    wifi_profile.key = "88888888"                   # wifi密码
    return wifi_profile                             # 返回wifi配置表

#获取网页数据-------------------------------------------------------
def get_webPage():
    url="https://www.baidu.com"
    url_temp="https://www.baidu.com/s?"

    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'}
    #response = requests.get(url=url, headers=headers)
    params = {"wd" : "中文"}

    #esponse = requests.get(url=url, headers=headers ,params=params)
    try:
        #设定连接超时7秒
        response = requests.get(url=url_temp, headers=headers ,params=params,timeout=7)
        #response.encoding = 'utf-8'
        #response.encoding = 'gbk'
        if response.status_code != 200:     #网页状态若不是200 说明连接不正常
            print("status_code:"+response.status_code)
            return 1
        else:
            #print("网页有数据")
            return 0

    except Exception as e:              #抛出异常是因为网络连接时间过长
        print("网页连接超时")
        return 1

#函数入口-------------------------------------------------------
if __name__ == '__main__':
    print('检测wifi网络连接状态软件,开始')
    wifi = pywifi.PyWiFi()              #获取wifi
    interface = wifi.interfaces()[0]    #获取wifi信息列表
    profile = set_profile()             #设置wifi属性
    n = 0                               #设置重连次数
    sum = 0                             #累计总和

    while True:
        if get_webPage() == 1:              #判断是否能连接上外网
            print()
            print('连接不到网页 断开wifi')
            if is_connected(interface):     #判断wifi是否连接中
                interface.disconnect()      #断开wifi
                time.sleep(2)
                print('已经断开wifi')

        if not is_connected(interface):     #判断wifi是否连接中
            print('网络已断开,重新连接中……')
            con = connet_wifi(interface, profile)   #连接wifi
            n += 1
            sum += 1
            if not con and n <= 300:
                continue
            else:
                res = '成功' if con else '失败'
                print(f'尝试连接{n}次,累计{sum}次,连接{res}!')
                n = 0
        time.sleep(2)                   #2秒检测一次


#本人最近使用百度网盘下载文件,难得开了会员,但是下载文件的时候时不时出现,明明wifi是连接的但是就是没有网络。
#推理应该是路由器年久了,无法长时间满载运行导致的问题,后经过优快云查询 python自动连接wifi的代码。

#以上wifi连接代码大部分参考该博主,感谢该博主的无私奉献!
#https://blog.youkuaiyun.com/weixin_42246906/article/details/125701899?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E6%96%AD%E5%BC%80wifi%E9%87%8D%E6%96%B0%E8%BF%9E%E6%8E%A5pywifi&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-125701899.nonecase&spm=1018.2226.3001.4187

#拿来使用需要修改代码
# wifi_profile.ssid = "MERCURY_E452"              # wifi名称
# wifi_profile.key = "88888888"                   # wifi密码

#其中本人觉得重点是网页的超时设置 timeout=7

#另外本人遇到以下问题不知道是怎么回事,我的解决办法是,打开另外一个可以执行的py项目,把pyWIFI.py复制到新项目后就没问题了。但是旧项目依旧报错。

# 哎呀,出现问题。请在报告此 Bug 时添加以下详细信息。
# 在 GitHub 上报告: https://github.com/lzybkr/PSReadLine/issues/new-----------------------------------------------------------------------
# 上 50 个密钥:
# Space & Space ' C : \ U s e r s \ L R J \ A p p D a t a \ L o c 
# a l \ P r o g r a m s \ P y t h o n \ P y t
# 异常:
# System.ArgumentOutOfRangeException: 该值必须大于或等于零,且必须 
# 小于控制台缓冲区在该维度的大小。
# 参数名: left
# 实际值是 -1。
# 在 System.Console.SetCursorPosition(Int32 left, Int32 top)    
# 在 Microsoft.PowerShell.Internal.VirtualTerminal.set_CursorLeft(Int32 value)
# 在 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)
# 在 Microsoft.PowerShell.PSConsoleReadLine.ForceRender()       
# 在 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)      
# 在 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)
# 在 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)
# 在 Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
# 在 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)
# -----------------------------------------------------------------------
# PS F:\001 my file\05 Generated File\Python code\Python Code WIFI> hon38\python.exe' 'c:\Users\LRJ\.vscode\extensions\ms-python.python-2023.2.0\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '64976' '--' 'F:\001 my file\05 Generated File\Python 
# code\Python Code WIFI\pyWIFI.py' 
# >> Python\Pyt

参考网址

感谢该博主的无私奉献!

附软件运行图:

 

开关WiFi和开关热点代码实现 1 WiFi开关 仅系统APP可以操作WiFi开关,同时还需要声明以下权限: <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 1.1 打开WiFi 通过WifiManager的setWifiEnabled可以打开WiFi: mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); mWifiManager.setWifi 阅读详情

相关推荐

Intel Edison开发板WiFi连接全攻略:从connmanctl配置到物联网应用实战

在物联网和嵌入式开发领域,网络连接是实现设备智能化的基础。WiFi技术作为最普及的无线通信方式,其核心原理是通过无线射频信号在设备与路由器之间传输数据,依赖TCP/IP协议栈完成网络通信。掌握WiFi配置技术对于嵌入式开发者至关重要,它能将孤立设备转变为可远程控制、数据可上云的智能节点,广泛应用于智能家居、工业监测、环境传感等场景。本文聚焦Intel Edison开发板,深入解析其专用的connman连接管理器,通过connmanctl命令行工具提供从网络扫描、服务识别到密码认证的完整配置流程,并涵盖wpa

weixin_34262482的博客 742

Pywifi——检测是否网络连接

PyWiFi是一个强大且易于使用的库,适用于 Wi-Fi 网络管理。通过本文提供的示例,你可以快速掌握如何使用PyWiFi进行无线网络连接和管理。希望本指南能帮助你更好地使用PyWiFi库进行无线网络的操作。

Lucas在澳洲 2071

解决Wi-Fi断连问题的编程方法

通过监测Wi-Fi连接状态并自动执行重新连接操作,我们可以提高网络连接的稳定性,减少断连问题带来的影响。本文将介绍一个通过编程优化网络连接稳定性的方法,帮助解决Wi-Fi断连问题。下面是一个使用Python编程语言的示例代码,演示了如何检测Wi-Fi连接是否断开,并在断连发生时进行自动重连。通过这种编程方法,我们可以实现自动监测和重连Wi-Fi连接,提高网络连接的稳定性。当Wi-Fi断连问题发生时,程序将自动执行重新连接操作,减少了用户手动干预的需要。在网络连接中,Wi-Fi断连是一个常见的问题。

Book_Sea的博客 214

一个简单的wifi开关shell脚本实现

实现功能为按一下wifi打开,再按一下wifi关闭。#!/bin/bashfoo=$(ifconfig ra0 | grep UP) if [ "$foo" = "" ] then echo "turn on wifi" ifconfig ra0 up else echo "turn off wifi" ifconfig ra0 down fi

ligordon的专栏 3218

WiFi注册指示灯常亮但无法连接网络的解决方法

首先,您应该确保您的设备已正确连接到WiFi网络。a. 在Windows操作系统中,打开“控制面板”,然后选择“网络和Internet”>“网络和共享中心”,点击“更改适配器设置”。a. 在Windows操作系统中,打开“控制面板”,然后选择“网络和Internet”>“网络和共享中心”,点击“更改适配器设置”。d. 在弹出窗口中,选择“获取IP地址自动”和“获取DNS服务器地址自动”,然后点击“确定”。d. 在弹出窗口中,选择“获取IP地址自动”和“获取DNS服务器地址自动”,然后点击“确定”。

CyberByte的博客 2310

WiFi已连接但有感叹号怎么办?解决方案与编程实例

当WiFi已连接但出现感叹号时,我们可以尝试以下解决方案:重启路由器和设备、忘记并重新连接WiFi网络、检查IP地址和DNS设置、更新设备驱动程序以及检查防火墙和安全软件设置。你可以尝试在设备的网络设置中使用动态获取IP地址和DNS,或手动设置正确的IP地址和DNS服务器。你可以尝试临时禁用防火墙和安全软件,然后重新连接WiFi网络,看看问题是否得到解决。有时候,WiFi连接问题可能是由于路由器或设备的临时故障引起的。然后,我们检查输出中是否包含了正确的IP地址和DNS设置信息,并给出相应的提示。

HackMasterX的博客 2304

python连接wifi_python 自动重连wifi windows的方法

如下所示:# coding=utf-8import urllib2import urllibfrom cookielib import CookieJarimport osimport reimport timeclass ConnectWeb(object):def __init__(self):self.cookiejarinmemory = CookieJar()self.opener = ...

weixin_39788131的博客 1341

解决Wi-Fi频繁断开重连问题的编程方法

通过编程来解决Wi-Fi频繁断开重连问题可以提高网络的稳定性和可靠性。本文介绍了一种使用Python编程的方法,并提供了相应的源代码。Wi-Fi频繁断开重连的问题可能由各种原因引起,包括信号弱、网络不稳定、硬件故障等。为了解决这个问题,我们可以通过编程来监测Wi-Fi连接状态并采取相应的措施。代码会不断检测Wi-Fi连接状态,如果连接断开,则会尝试重新连接。在编程中解决Wi-Fi频繁断开重连问题是一个常见的挑战。模块执行系统命令来检查Wi-Fi连接状态和重新连接Wi-Fi。二、使用Python编程。

TbbPuppet的博客 313

Python ESP32 WIFI连接

通过ESP32自身wifi模块接入网络。

Angle_Mjd的博客 1400

macOS向日葵闪退终极修复:权限设置与后台运行全解析

本文详细解析了macOS上向日葵远程控制软件闪退问题的根源与解决方案,重点介绍了权限设置与后台运行的优化方法。通过配置屏幕录制、辅助功能等关键权限,以及优化后台进程管理,有效解决闪退问题,提升远程控制软件的稳定性与使用体验。

fern8的博客 1762

Flink实战项目——城市交通实时监控平台

本项目是与公安交通管理综合应用平台、机动车缉查布控系统等对接的,并且基于交通部门现有的数据平台上,进行的数据实时分析项目。

yangwei2048的博客 837

Python自动化WiFi管理:从扫描到连接的完整指南

本文提供了一份使用Python自动化管理WiFi的完整指南,详细介绍了如何利用pywifi库实现从扫描网络到自动连接的完整流程。内容涵盖环境搭建、网卡接口操作、Profile配置、连接状态监控以及构建智能管理工具,旨在帮助网络管理员和自动化测试工程师提升工作效率,实现批量设备管理与智能网络切换。

m3n5b7v8c9x的博客 718

告别模糊与偏色:使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战心得

本文详细介绍了如何使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战经验。从调试环境搭建到3A算法优化,再到画质增强模块的深度调参,提供了全面的技术指导和参数建议,帮助工程师解决噪声、色偏和细节模糊等常见问题,显著提升成像质量。

weixin_28729205的博客 452

python wifi使用方法_python 自动重连wifi windows的方法

# coding=utf-8import urllib2import urllibfrom cookielib import CookieJarimport osimport reimport timeclass ConnectWeb(object):def __init__(self):self.cookiejarinmemory = CookieJar()self.opener = urlli...

weixin_39989941的博客 275

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 478

CentOS7下Node.js v20+安装与常见依赖库问题解决指南

本文详细介绍了在CentOS7系统下安装Node.js v20+的完整流程及常见依赖库问题的解决方案。通过升级glibc到2.28+、配置环境变量以及处理libstdc++版本问题,帮助开发者顺利在老旧系统上部署最新版Node.js,提升开发效率。

weixin_30689307的博客 156

micropython+ESP32入门教程——连接wifi

学习ESP32的很大一部分原因就是看重其wifi功能,本节将讲述如何用esp32连接wifi

一世杀闪博客 1362

2023年GESP12月认证C++五级真题解析

例如,如果a=4,那么4是最⼩的幸运数,而1不是,但我们可以连续对1做3次+1操作,使其变为4,所以我们可以说,1幸运化后的结果是 4。【题目大意】给一个完全平方数的标准,推导出哪些是超级幸运数,然后判断N个数字中,哪些是超级幸运数,是的输出“lucky”,不是的输出离该数字最近的比它大的数字。前一个数字,下标是j的数字是偶数,后面的数字下标是j+1的是奇数,按照要求,偶数在奇数的后面,要交换。A函数时间复杂度是O(n/2),B函数算法是O(sqrt(n)),大部分情况后者是优的,值更小。

lan_in的博客 1007

python 自动重连wifi windows

# coding=utf-8 import urllib2 import urllib from cookielib import CookieJar import os import re import time class ConnectWeb(object): def __init__(self): self.cookiejarinmemory = CookieJ

蒋亮亮的博客 4730

RK3588芯片CAN总线调试秘籍:SocketCAN与错误帧攻略

RK3588芯片在嵌入式领域凭借8nm工艺和强大性能成为核心控制器。本文详细介绍了其CAN总线配置流程,包括硬件连接、内核驱动配置及SocketCAN命令操作,并深入解析了CAN通信中的错误帧机制及分析方法。通过智能工厂案例,展示了从问题定位到解决方案的全过程,强调了稳定通信对工业应用的重要性。文章为RK3588的CAN总线应用提供了实用技术参考,并对未来智能诊断技术在该领域的应用进行了展望。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 514

《QEMU/KVM源码分析与应用》读书笔记1 —— 第1章 QEMU与KVM概述

《QEMU/KVM源码分析与应用》学习笔记1 —— 第一章 QEMU与KVM概述

phmatthaus的专栏 1984

MicroPython_ESP8266_IoT——第五回 网页配置(局域网连接WiFi)

此模块提供网络连接的驱动,以及路由配置。配置网络后,可以通过`usocket`模块获取网络服务。使用起来非常方便,官网教程中也给了例子。

我要变强Wow 3102

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python esp8266wifi控制_怎样使用ESP8266进行Wifi远程控制

步骤1:Arduino控制器要将nunchuk粘贴到Wifi,我们使用了Arduino。该代码是针对Arduino Mega的,因此我们可以有两个串行端口(Rx和Tx引脚),一个用于对Arduino编程,而另一个用于Wifi(ESP8266)。这是一种非常简单的方法。在最终产品中,您可以将ESP8266分别连接到任何Arduino上的Tx和Rx,例如UNO或低成本的Pro Mini(请确保正确地插...

weixin_39746652的博客 1084

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TCP协议用在python和wifi模块之间

python建立TCP连接需要用到socket协议。   如果是TCP Server,建立TCP连接的步骤是:1.创建socket套接字2.绑定(bind())本地的ip地址和端口号3.监听端口(listen),如果有socket连接,便接收(accept)。   如果是TCP Client,建立TCP连接的步骤是:1.创建socket套接字2.连接(connect)远程主机的ip地址和端口号

John_Y97的博客 4429

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

树莓派无界面连接需验证的WIFI

需求描述 硬件:树莓派4B一台,公司WIFI(需验证),无外接显示器。 需求:连接公司WIFI并联网。 实现逻辑 在可联网的环境,如在家插入网线配置好SSH登录,安装nmcli,配置好目标WIFI信息,建议同时配置好手机WIFI,方便出问题时直接连接手机调试。 命令 工具安装 # 安装nmcli工具 sudo apt install network-manager # 连接wifi的命令为 nmcli device wifi connect [wifi_name] password [your_pw] #

CodeZenPlayground 2707
下一篇: STM32H750VBTx 用Cube创建多路Uart和带有FreeRtos的项目流程,以及踩到的坑
赴你一面之约
博客等级 码龄8年 9粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值