原先不知道win7系统也可以当作无线路由器,既然知道了这个东西那么就搞搞了

使用python写的一个wifi共享工具,还不够完善,有些功能还没做(说明:internet共享连接需要手动设置)......

别的不说了,贴上源代码吧!

#-*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
import wx
import ConfigParser
myconfig=ConfigParser.ConfigParser()
myconfig.read('config.ini')
new_ssid=str(myconfig.get('ssid', 'myssid'))
new_passwd=str(myconfig.get('passwd','mypasswd'))
new_security=str(myconfig.get('security_type','mysecurity'))
new_showpwd=str(myconfig.get('showpwd','showpwd'))
new_security_dict={'WPA2':0,'无身份验证(开放式)':1}

class frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self,None,-1,"Wi-Fi共享帮手",size=(390,240),style=wx.CAPTION|wx.MINIMIZE_BOX|wx.CLOSE_BOX)
        self.panel=wx.Panel(self,-1)
        ssid=wx.StaticText(self.panel,-1,"网络SSID:",pos=(15,20))
        self.ssid_input=wx.TextCtrl(self.panel,-1,value=new_ssid,size=(225,20),pos=(80,20))
        self.ssid_input.Refresh()
        self.ssid_input.SetMaxLength(31)
        self.ssid_input.Bind(wx.EVT_TEXT,self.ssid_evt)
        lenssid=wx.StaticText(self.panel,-1,"(1-31个字符)",pos=(310,20))
        security=wx.StaticText(self.panel,-1,"网络安全类型:",pos=(15,50))
        self.security=wx.ComboBox(self.panel,-1,choices=['WPA2','无身份验证(开放式)'],pos=(100,50))
        self.security.Select(new_security_dict[new_security])
        self.security.Bind(wx.EVT_COMBOBOX, self.security_evt)
        self.passwd_st=wx.StaticText(self.panel,-1,"网络密钥:",pos=(15,80))
        self.passwd=wx.TextCtrl(self.panel,-1,value=new_passwd,style=wx.TE_PASSWORD,size=(225,25),pos=(75,80))
        self.passwd_no=wx.TextCtrl(self.panel,-1,value=new_passwd,size=(225,25),pos=(75,80))
        self.passwd_no.Bind(wx.EVT_TEXT, self.passwd_no_evt)
        self.passwd.Bind(wx.EVT_TEXT, self.passwd_evt)
        self.passwd.SetMaxLength(63)
        self.lenpwd=wx.StaticText(self.panel,-1,"(8-63个字符)",pos=(310,80))
        self.showpwd=wx.CheckBox(self.panel,-1,"显示密钥字符",pos=(15,110))
        self.showpwd.Bind(wx.EVT_CHECKBOX,self.showpwd_evt)
        self.value=wx.CheckBox(self.panel,-1,"保存这个网络设置",pos=(115,110))
        self.value.Bind(wx.EVT_CHECKBOX,self.value_evt)
        self.auto=wx.CheckBox(self.panel,-1,"开机自动启动Wi-Fi共享",pos=(235,110))
        self.auto.Bind(wx.EVT_CHECKBOX, self.auto_evt)
        self.start_wifi=wx.Button(self.panel,-1,"开启Wi-Fi",pos=(15,150))
        self.start_wifi.Bind(wx.EVT_BUTTON,self.start_wifi_evt)
        self.stop_wifi=wx.Button(self.panel,-1,"关闭Wi-Fi",pos=(120,150))
        self.stop_wifi.Bind(wx.EVT_BUTTON,self.stop_wifi_evt)
        if  myconfig.get('windows','start_on_windows')=='true':
            self.auto.SetValue(True)
        else:
            self.auto.SetValue(False)
        if myconfig.get('save_config','save_config')=='true':
            self.value.SetValue(True)
        else:
            self.value.SetValue(False)
        if str(self.security.GetValue())=="无身份验证(开放式)":
            self.passwd.Hide()
            self.passwd_st.Hide()
            self.lenpwd.Hide()
            self.passwd_no.Hide()
            self.showpwd.Disable()
        if new_showpwd=="true":
            self.passwd.Hide()
            self.showpwd.SetValue(True)
        else:
            self.passwd_no.Hide()
            self.showpwd.SetValue(False)
    def showpwd_evt(self,evt):
        if self.showpwd.GetValue() is True:
            self.passwd.Hide()
            self.passwd_no.Show()
            myconfig.set('showpwd','showpwd','true')
            myconfig.write(open('config.ini','w'))
        else:
            self.passwd_no.Hide()
            self.passwd.Show()
            myconfig.set('showpwd','showpwd','false')
            myconfig.write(open('config.ini','w'))
    def auto_evt(self,evt):
        if myconfig.get('windows','start_on_windows')=='true':
            myconfig.set('windows', 'start_on_windows', 'false')
            myconfig.write(open('config.ini','w'))
        else:
            myconfig.set('windows', 'start_on_windows', 'true')
            myconfig.write(open('config.ini','w'))
    def value_evt(self,evt):
        if myconfig.get('save_config','save_config')=='true':
            myconfig.set('save_config','save_config','false')
            myconfig.set('ssid','myssid','')
            myconfig.set('passwd','mypasswd','')
            myconfig.set('security_type','mysecurity','WPA2')
            myconfig.write(open('config.ini','w'))
        else:
            myconfig.set('save_config','save_config','true')
            myconfig.set('ssid','myssid',str(self.ssid_input.GetValue()))
            myconfig.set('passwd','mypasswd',str(self.passwd.GetValue()))
            myconfig.set('security_type','mysecurity',str(self.security.GetValue()))
            myconfig.write(open('config.ini','w'))
    def ssid_evt(self,evt):
        myconfig.set('ssid','myssid',str(self.ssid_input.GetValue()))
        myconfig.write(open('config.ini','w'))
    def passwd_evt(self,evt):
        myconfig.set('passwd','mypasswd',str(self.passwd.GetValue()))
        myconfig.write(open('config.ini','w'))
        self.passwd_no.SetValue(self.passwd.GetValue())
    def passwd_no_evt(self,evt):
        myconfig.set('passwd','mypasswd',str(self.passwd_no.GetValue()))
        myconfig.write(open('config.ini','w'))
        self.passwd.SetValue(self.passwd_no.GetValue())
    def security_evt(self,evt):
        myconfig.set('security_type','mysecurity',str(self.security.GetValue()))
        myconfig.write(open('config.ini','w'))
        if str(self.security.GetValue())=="无身份验证(开放式)":
            self.passwd.Hide()
            self.passwd_st.Hide()
            self.lenpwd.Hide()
            self.passwd_no.Hide()
            self.showpwd.Disable()
        else:
            self.showpwd.Enable()
            self.passwd_st.Show()
            self.lenpwd.Show()
            if self.showpwd.GetValue() is True:
                self.passwd_no.Show()
            else:
                self.passwd.Show()
            
    def start_wifi_evt(self,evt):
        os.system("net start wlansvc")
        os.system("netsh wlan set hostednetwork mode=allow")
        if str(self.security.GetValue())=="无身份验证(开放式)":
            self.passwd.SetValue("")
        os.system("netsh wlan set hostednetwork ssid=%s key=%s"%(self.ssid_input.GetValue(),self.passwd.GetValue()))
        os.system("netsh wlan start hostednetwork")
        self.start_wifi.Disable()
    def stop_wifi_evt(self,evt):
        os.system("netsh wlan stop hostednetwork")
        self.start_wifi.Enable()

class app(wx.App):
    def OnInit(self):
        myframe=frame()
        myframe.Show()
        return True
if __name__=="__main__":
    myapp=app()
    myapp.MainLoop()

python版本wifi共享工具的更多相关文章

  1. 转python版本的curl工具pycurl学习

    一 pycurl介绍 pycurl模块为libcurl库提供了一个python接口.libcurl是一个开源免费且方便快捷的基于客户端的url传输库,支持FTP,HTTP,HTTPS,IMAP,IMA ...

  2. 安装的 Python 版本太多互相干扰?pyenv 建议了解一下。

    写在之前 我们都知道现在的 Python 有 Python2 和 Python3,但是由于各种乱七八糟的原因导致这俩哥们要长期共存,荣辱与共,尴尬的是这哥俩的差异还比较大,在很多时候我们可能要同时用到 ...

  3. 自动化运维工具ansible-如何设置客户端多python版本问题

    问题:在使用ansible进行管理客户主机时,发现客户主机安装了多个版本的python,并且默认版本为3.0 shell>>cat list 192.168.2.9 shell>&g ...

  4. Python多版本共存管理工具之pyenv

    目录 Table of Contents 1. 安装pyenv 2. 安装Python 3.0 使用python 参考 Table of Contents 经常遇到这样的情况: 系统自带的Python ...

  5. Python—版本和环境的管理工具(Pipenv)

    pipenv简介 虚拟环境本质是一个文件,是为了适应不同的项目而存在.pipenv相当于virtualenv和pip的合体. 整合了 pip+virtualenv+Pipfile,能够自动处理好包的依 ...

  6. Python实现代码统计工具——终极加速篇

    Python实现代码统计工具--终极加速篇 声明 本文对于先前系列文章中实现的C/Python代码统计工具(CPLineCounter),通过C扩展接口重写核心算法加以优化,并与网上常见的统计工具做对 ...

  7. anaconda虚拟环境管理,从此Python版本不用愁

    1 引言 在前几篇博文中介绍过virtualenv.virtualenvwrapper等几个虚拟环境管理工具,本篇要介绍的anaconda也有很强大的虚拟环境管理功能,甚至相比virtualenv.v ...

  8. Kali Linux中前十名的Wifi攻击工具

    无 线网络的攻与防一直是比较热门的话题,由于无线信号可以被一定范围内的任何人接收到(包括死黑阔),这样就给WIFI带来了安全隐患:路由器生产厂商和网 络服务供应商(ISPs)的配置大多是默认开启了WP ...

  9. Python的包管理工具

    Python的包管理工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么使用包管理 Python的模块或者源文件直接可以复制到目标项目目录中,就可以导入使用了. 但是为了 ...

随机推荐

  1. 7个基于Linux命令行的文件下载和网站浏览工具

    7个基于Linux命令行的文件下载和网站浏览工具 时间:2015-06-01 09:36来源:linux.cn 编辑:linux.cn 点击: 2282 次 Linux命令行是GNU/Linux中最神 ...

  2. 基于visual Studio2013解决C语言竞赛题之1094纵横图

        题目 解决代码及点评 /************************************************************************/ /* ...

  3. 关于Android配色 自适应颜色的实现

    在Android4.4系统中,更加详细地介绍了关于颜色的细节并提供了使用colour的新教程,以使我们的应用更加独一无二.也就是说,作为一个设计师或者开发者,为你的APP做完美的配色已经变成了你的职责 ...

  4. qt事件传递过程和处理

    处理监控系统的时候遇到问题,在MainWidget中创建多个子Widget的时候,原意是想鼠标点击先让MainWidget截获处理后再分派给子Widget去处理,但调试后发现如果子Widget重新实现 ...

  5. 移动无边框窗体(设置标志位更流畅,或者发送WM_SYSCOMMAND和SC_MOVE + HTCAPTION消息)

    移动无边框窗体的代码网上很多,其原理都是一样的,但是是有问题的,我这里只是对其修正一下 网上的代码仅仅实现了两个事件 void EditDialog::mousePressEvent(QMouseEv ...

  6. 怎样将baidu地图中的baidu logo 去掉

    今天我的老大问我是不是能够将baidumap 的js版中baidu logo 去掉. 我上网查询一下,有各种方法.比方将相应的logo div remove hide 等等,这些都是须要JS 函数触发 ...

  7. 如何利用Win32API取得另一支程式中的ListView內的所有值(RegisterHotKey,ReadProcessMemory,WindowFromPoint和VirtualAllocEx)

    http://blog.csdn.net/shuaihj/article/details/6129506

  8. ThinkPhp学习05

    原文:ThinkPhp学习05 一.ThinkPHP 3 的CURD介绍  (了解)二.ThinkPHP 3 读取数据    (重点) 对数据的读取 Read $m=new Model('User') ...

  9. c语言实现动态指针数组Dynamic arrays

    c语言实现动态数组.其它c的数据结构实现,hashTable參考点击打开链接 treeStruct參考点击打开链接 基本原理:事先准备好一个固定长度的数组. 假设长度不够的时候.realloc一块区域 ...

  10. 【智能家居篇】wifi网络接入原理(上)——扫描Scanning

    转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 对于低头党来说,在使用WIFI功能时,常常性的操作是打开手机上的WIFI设备,搜索到心目中的热点,输入passwor ...