python获取Win10已保存的WIFI密码

#coding: gbk
#author: Alien
#date  : 2017年5月13日

import os, re
import xml.dom.minidom

#if is python2
#if sys.getdefaultencoding() != 'gbk': 
#    reload(sys) 
#    sys.setdefaultencoding('gbk')

class GetWifiPassword(object):
    
    def get_all_name(self):
        cmd = 'netsh wlan show profile'
        ret = os.popen(cmd).read()
        wifi_name_list = re.compile('所有用户配置文件 : (.*)').findall(ret)
        return wifi_name_list
    
    def get_passwd(self):
        wifi_name_list = self.get_all_name()
        if len(wifi_name_list) == 0:
            print('Did not save any wifi')
            return
        
        tmp_file = 'tmp'
        for name in wifi_name_list:
            cmd = 'netsh wlan export profile name="%s" folder=. key=clear > %s' % (name, tmp_file)
            ret = os.system(cmd)
            if ret == 0:
                file_name = 'WIFI-%s.xml' % name
                passwd = self.get_xml_value(file_name)
                os.system('ERASE %s' % file_name)
                print('%s: %s' % (name, passwd))
                
        os.system('ERASE %s' % tmp_file)
    
    def get_xml_value(self, path):
        try:
            dom = xml.dom.minidom.parse(path)
            root = dom.documentElement
            msm = root.getElementsByTagName('MSM')[0]
            sec = msm.getElementsByTagName('security')[0]
            key = sec.getElementsByTagName('sharedKey')[0]
            passwd = key.getElementsByTagName('keyMaterial')[0].firstChild.data
            return passwd
        
        except Exception:
            return 'None'
     
if __name__ == '__main__':
    GetWifiPassword().get_passwd()

下载可直接运行的exe文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值