前言

netsh介绍

Netsh(全称是network shell)简单来说 是命令行脚本工具,它允许从本地或远程显示或修改当前正在运行的计算机的网络配置。

关于net是的详细资料可以参考下面的连接:netsh命令_顺其自然~的博客-CSDN博客_netsh命令

由于今天我们只需要操作windows的WLAN,所以只需要了解netsh wlan的相关命令即可。

那么netsh wlan有哪些命令呢?

可以使用 netsh wlan ?来查看

每条命令是做什么的后面都带有解释。若想查看每条子命令的用法直接在后面加?即可;

比如想知道netsh wlan show 的用法,只需输入:netsh wlan show ?

实践

一.连接之前连接过的WiFi

想用python实现此功能,首先需要知道具体的netsh命令,然后利用我之前文章里提到过的subprocess来执行命令,获取返回值即可。

首先,通过命令:netsh wlan show profiles 列出所有该电脑连接过的wifi,以我本机为例

以上列出的名称是我电脑连接过的wifi列表;然后需要知道连接wifi所需命令: netsh wlan connect name=SSID名,SSID就是wifi名称,命令实现如下:

好了,知道具体命令后就可以用python的subprocess模块来实现自动连接功能了。

二.连接已连接过的wifi:

 def get_connected_wlans(self):cmdString = 'netsh wlan show profiles'try:process = subprocess.Popen(cmdString, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)except Exception as err:raise AssertionError('Execute command: {:s} error,{:s}'.format(cmdString, err))resp = process.stdout.read().decode()wlans = re.findall(r'所有用户配置文件\s*\S{1}\s*(?P<name>\w*)', resp, re.S)if wlans is None:raise AssertionError('Not found connected wlan ssid in {:s}'.format(resp))return wlansdef connect_to_wlan(self, ssid):ssid = str(ssid).strip()cmdString = 'netsh wlan connect name={:s}'.format(ssid)try:process = subprocess.Popen(cmdString, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)except Exception as err:raise AssertionError('Execute command: {:s} error,{:s}'.format(cmdString, err))resp = process.stdout.read().decode()if '已成功完成连接请求' in resp:logger.info('Connect to {:s} success'.format(ssid))

此外,netsh命令还可获取当前PC搜索到的所有可用的wifi,具体命令是:

netsh wlan show networks

三.获取当前所有可用wlan:

 def get_all_accessible_wlans(self):"""Only for windows system"""self.disconnect_wlan_connection()cmdString = 'netsh wlan show networks'wlanItems = {}try:process = subprocess.Popen(cmdString, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)except Exception as err:raise AssertionError('Execute command: {:s} error,{:s}'.format(cmdString, err))resp = process.stdout.read().decode('gbk')items = re.findall(r'(?P<ssid>[A-Z]+\s{1}\d{1,2})\s*\S{1}\s*(?P<name>\w*)', resp, re.S)#match = re.findall(r'SSID\s{1}\d{1,2}\s*\S{1}\s*(?P<name>\w*)', resp, re.S)if items is None:raise AssertionError('Not found wlan ssid in {:s}'.format(resp))for item in items:wlanItems[item[0]] = item[1]return wlanItems

除了以上,还可通过python脚本加netsh命令实现修改本机ip地址。命令格式为:

【netsh interface ip set address name="连接名称" static 新IP地址 子网掩码 网关】

这里我举个自己的例子,修改本机“WLAN”的ip地址为固定的地址。

四.修改本机WLAN的IP:

 def modify_wlan_ip(self, ipAddress, mask='255.255.255.0'):cmdString = 'netsh interface ip set address name="WLAN" source=static addr={:s} mask={:s}'.format(ipAddress, mask)try:process = subprocess.Popen(cmdString, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)except Exception as err:raise AssertionError('Execute command: {:s} error,{:s}'.format(cmdString, err))resp = process.stdout.read().decode()# ToDo Validation

总结:

总的来说,所有netsh命令实现的功能都可以用python进行封装,但是你需要清除netsh命令是什么。但是netsh命令相当庞大,具体命令还需要自己去查询,然后用subprocess模块封装成函数。

我这里就是简单封装一些wlan相关的功能成关键字,然后在robotframework中进行调用,从而实现自动化测试的功能。

以上内容只用于抛砖引玉,更多更复杂的功能还需各位自己去调研! 感谢阅读!!

Python 操作windows的Wlan相关推荐

  1. python对windows进行操作_【转】python 操作windows下的目录

    python 操作windows下的目录 python操作目录.文件相关的函数,在os模块中,当然或许也有别的模块提供了更方便的函数 以下列出的所有函数均亲自测试过! 1.os.getcwd()    ...

  2. Python 操作 Windows 粘贴板

    为什么80%的码农都做不了架构师?>>>    Python 操作 Windows 粘贴板,实现Ctrl + C 和 Ctrl + V 功能 需要先以管理员权限安装PyWin 代码: ...

  3. python操作Windows任务计划程序

    使用python操作Windows任务计划程序 最低支持服务器:Windows Server 2008 以下参考网站 替换 en-us > zh-cn 即可查看 中文文档(为机器翻译可能不太准确 ...

  4. Python 操作Windows文件上传Linux,Linux文件下载到Windows本地

    关注点 使用python操作从linux服务器下载文件到Windows指定路径下 #!/usr/local/bin/python # encoding:utf-8import paramiko imp ...

  5. python窗口程序-python操作Windows窗口程序

    如果你想看更多舒适的布局和守时,有干货推动现场每天8点.定期获得数据接口和数据写入Excel表.Excel需要使用其他程序和需要打开.Pywin32处理是一个32位整数,用于标记对象在windows中 ...

  6. python 操作 windows 控件_在中文windows下使用pywinauto进行窗口操作(一)

    这两天开始接触pywinauto,听说百度的自动化QA也用这个模块,于是来了兴趣,但网上的教程很少,而且基本上都是拿官方的notepad来说,首先中文菜单的支持是问题,其次各种操作也没有写清楚,阅读官 ...

  7. python 操作windows DNS

    在windows平台上启用winrm服务 winrm service 默认都是未启用的状态,先查看状态:如无返回信息,则是没有启动: winrm enumerate winrm/config/list ...

  8. python操作windows库_python大佬养成计划----win下对数据库的操作

    数据库 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. win系统安装mysql,详见链接描述 数据库常见命令 mysql ...

  9. python操作windows窗口一个小case

    1. import win32gui, win32con 2. win32gui.FindWindow找到目标程序: win = win32gui.FindWindow(None, u'无标题 - 记 ...

最新文章

  1. DL-5 深度学习框架的对比
  2. sort+参数+linux,linux sort下令参数及用法详解
  3. MySQL性能优化(七)-- 慢查询
  4. 管理赚得多还是程序员多_程序员如何为自己开辟出更多的收入渠道
  5. java 3000并发,还被面试官怼并发编程?来,吃点能量!Java并发编程技术
  6. I学霸官方免费教程四十二 :Java流之字节流 输入流和输出流 InputStream和OutputStream...
  7. DXperience Winforms12.2版中文使用手册
  8. 联网JAVA模拟器_java模拟器
  9. c语言对整形indexing,C语言运算符另类分类法
  10. 接入技术——长途呼叫的典型路由
  11. happen-before讲解
  12. Python二手房价格预测(二)——数据处理及数据可视化
  13. 三、使用HM进行简单的视频隐写demo
  14. 【Audio音频兴趣拓展】麦克风阵列_声音定位
  15. 读刘润《底层逻辑》摘录
  16. 翻译python代码的软件_Linux环境下的Python翻译工具源码
  17. IBM联手农业科技公司通过区块链推动非洲农业企业发展
  18. 点对点聊天系统 v1.0
  19. 数显之家快讯:【SHIO世硕心语】曾国藩240个子孙,就凭这5句话,无一个败家!
  20. 【Python 第1课】安装

热门文章

  1. windows cmd命令行新建文件,编辑文件,删除文件命令
  2. 移动应用开发——仿网易云音乐学习心得(uni-app框架)
  3. python 股票分析api,2020-04-21 用python3 按周分析新浪接口股票数据(篇一:下载、存储篇)...
  4. 135-146 李游前端精品课程笔记
  5. C语言数组初始化问题
  6. 《After Effects CC 影视特效及商业栏目包装案例100+》课程教学(10)——第10章 影视恐怖特效合成
  7. 王者android在苹果上怎么弄,王者荣耀怎么从安卓转到苹果手机
  8. Python日志17
  9. CSS快速设置黑夜模式(黑色图标变白)
  10. 主板上的jrgb接口干什么用_教学|主板上这么多接口 你都认识吗?