前言

最近在打游戏的时候经常会遇到断网的情况,每次都需要切出去切换wifi,很烦人,所以就写了个用Python自动切换可用的wifi来减少困扰。

几个系统命令

这次我们是使用python中的os模块来模拟命令行来执行命令切换wifi,所以在写程序之前,可以先了解一下几个命令。

查看当前wifi:netsh wlan show interfaces查看所有wifi:netsh wlan show profiles连接wifi:netsh wlan connect name="wifi名称"

思路

这次我们写的程序的主要思路如下:

1.获取当前wifi
2.测试当前wifi能否ping通百度
3.如果能ping通则等待5s后继续测试
4.如果ping不通则在能够连接的wifi中随机选择一个来连接

代码

获取当前wifi

import os
import subprocessdef get_current_wifi():cmd = 'netsh wlan show interfaces'p = subprocess.Popen(cmd,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)ret = p.stdout.read()index = ret.find("SSID")if index > 0:return ret[index:].split(':')[1].split('\r\n')[0].strip()else:return None

这里我们使用subprocess.Popen函数来模拟执行命令行命令,并通过read()方法得到命令行的结果,接着对结果进行分析可以得到当前的wifi。

测试能否ping通

def check_ping(ip, count=1, timeout=1000):cmd = 'ping -n %d -w %d %s > NUL' % (count, timeout, ip)res = os.system(cmd)return 'ok' if res == 0 else 'failed'

这里我们首先构建了一个cmd命令来ping我们自己传递过来的ip地址,然后使用os.system()函数执行该命令,如果返回值为0则ping通,否则失败。

自动切换wifi

import randomdef auto_switch_wifi(wifiList):wifi = random.choice(wifiList)cmd = 'netsh wlan connect name={}".format(wifi)res = os.system(cmd)return 'ok' if res == 0 else 'failed'

在auto_switch_wifi()函数中,我们接收一个可用的wifi列表,然后再列表中随机选择一个wifi进行切换,如果成功则返回ok。

到这里我们的几大基本模块已经写完了,下面上完整代码。

# _*_ coding:utf-8 _*_
import os
import time
import subprocess
import randomdef check_ping(ip, count=1, timeout=1000):cmd = 'ping -n %d -w %d %s > NUL' % (count, timeout, ip)# 通过os.system()方法执行命令response = os.system(cmd)return 'ok' if response == 0 else 'failed'def get_current_wifi():cmd = 'netsh wlan show interfaces'p = subprocess.Popen(cmd,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)ret = p.stdout.read()index = ret.find('SSID')if index > 0:return ret[index:].split(':')[1].split('\r\n')[0].strip()def auto_switch_wifi(wifiList):wifi = random.choice(wifiList)cmd = 'netsh wlan connect name="%s"' % wifires = os.system(cmd)return 'ok' if res == 0 else 'failed'def main():# 百度ipipTest = '61.135.169.121'# 可以切换的wifiwifiList = ['HUAWEI-5DD8']while True:current_wifi = get_current_wifi()print "当前的wifi为:", current_wifiif check_ping(ipTest, 2) != 'ok':print "联网失败,正在切换wifi"if auto_switch_wifi(wifiList) == 'ok':print "切换成功"print "-" * 40else:continuetime.sleep(5)else:print "可以成功联网"print '-' * 40time.sleep(5)if __name__ == "__main__":main()

总结

人生苦短,我用python!代码还有可以完善的地方,如果想要扩展更多功能的童鞋可以自己探索哈!

Python自动切换wifi相关推荐

  1. 《狂飙》壁纸太帅,Python自动切换太酷(8)

    小朋友们好,大朋友们好! 我是猫妹! 要说最近什么电视剧最火? 非<狂飙>莫属. <狂飙>剧名来自毛主席诗词"国际悲歌歌一曲,狂飙为我从天落". 导演借用& ...

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

    #文件名 pyWIFI.py #python自动检测wifi是否能联网,断开wifi重新连接wifi的代码.# 网上下载安装Python3.8 # 配置环境变量 以下为参考 # python环境变量 ...

  3. html5 自动连接wifi,怎么设置自动切换wifi 点击右上角的【高级设置】

    怎么停止手机WIFI自动切换 安卓手机设置禁止自动连接WiFi的方法: 在此以"小米4"手机为例,打开手机"设置"界面,点击"WLAN"项进 ...

  4. python自动切换链接_windown 使用python 自动切换网络

    由于工作环境的特殊性,有时需要切换到内网工作,有时需要通过手机连接外网,想自动运行一个脚本就做完这事 首先在PC机上安装一个无线网卡,例如360wifi就可以. 除了python,还用到了DOS命令, ...

  5. Windows上利用Python自动切换代理IP的终极方案!

    转载:http://www.jianshu.com/p/49c444d9a435 文/solomonxie(简书作者) 原文链接:http://www.jianshu.com/p/49c444d9a4 ...

  6. python自动切换链接_python+selenium自动化(四)之selenium切换窗口

    当我们点击某个链接时,切换换到另一个窗口,这时就需要跟随切换到新打开的页面,去定位元素. 1.获取当前页面句柄  current_window_handle importtimefrom seleni ...

  7. Windows环境使用Python自动切换代理IP

    一般来说代理IP断开重连就能就会为你重新分配IP了 1.在网络设置中手动创建一个vpn连接 比如我创建的名称为conname 地址为 gaosama.5464.org 账号为 aaa1 密码为 aaa ...

  8. 没有wifi的时候4g不自动连接服务器,手机自动连接WIFI后,到底要不要关闭4G流量?...

    原标题:手机自动连接WIFI后,到底要不要关闭4G流量? 大家都有这样的困扰,每个月的流量不知不觉就没有了?但是流量到底用在那里了?还有人提出疑问,平时手机自动连接WIFI后,会不会消耗我们的4G流量 ...

  9. 关于用python实现Windows笔记本自动切换强信号WiFi功能

    引言 作为一个家里有几个wifi且懒得进行整合且惯用python的人,写个python程序来代替我手动切换wifi大概是除了使用现成的软件(并没有找到)之外最方便的选择吧.于是就有了这篇文章,用来记录 ...

最新文章

  1. php中的解析范围符,PHP 的范围解析操作符 (::) 的含义分析说明
  2. Qt Creator使用Git
  3. 服务器系统wlanapi,没有找到wlanapi.dll怎么办?
  4. NET流行高性能JSON框架-Json.NET
  5. 终极解密!输入网址按回车到底发生了什么?
  6. 网络七层协议_IT人计算机网络浅析
  7. ffmpeg 推流同时录像命令_使用FFmpeg将rtsp流摄像头视频转码为rtmp播放
  8. 【Go语言核心手册14】结语参考文献
  9. 关于戴尔等AC9560 160MHZ 网卡驱动出现感叹号,无法正常使用wifi解决办法之一
  10. 课堂作业之首尾相连子数组值
  11. Oracle的Package的作用及用法
  12. 如何同步微信信息php,微信小程序中实现同步请求的方法
  13. 学位计算机考试成绩怎么查询时间,湖北省自考00019计算机实践考试成绩在哪里查询...
  14. JAVA 北京大学GPA计算转换
  15. python 多态app_Python——多态
  16. 个人项目——找水王续
  17. 【完全背包】A005_LC_贴纸拼词(dp + 状态压缩)
  18. 「自控原理」5.1 频率特性及其图示
  19. 无动力风帽自动排风扇屋顶风机通风器
  20. Weblogic报错BEA-141281

热门文章

  1. 史上最全的CSS基础知识大全!
  2. 在移动网络上创建更稳定的连接
  3. 50种常见Matplotlib科研论文绘图合集!赶紧收藏~~
  4. 工具使用 - office快捷键
  5. matplotlib库的pyplot的plot()函数详解
  6. java 快速导出源代码工具 申请软件著作权
  7. Appinventor使用
  8. python是微软开发的吗_Python是如何在微软发展壮大的
  9. 从前端技术到体验科技
  10. Calendar自然周