设为首页 收藏本站
查看: 2271|回复: 1

[经验分享] python版本wifi共享工具

[复制链接]

尚未签到

发表于 2015-9-30 14:32:58 | 显示全部楼层 |阅读模式
  原先不知道win7系统也可以当作无线路由器,既然知道了这个东西那么就搞搞了
  使用python写的一个wifi共享工具,还不够完善,有些功能还没做(说明:internet共享连接需要手动设置)...... DSC0000.gif
   DSC0001.jpg

  别的不说了,贴上源代码吧!
  #-*- 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()


         



  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-121039-1-1.html 上篇帖子: S3C2440实现wifi、3G上网和迷你无线路由的制作(一) 下篇帖子: Cannot get WiFi AP state 错误
累计签到:60 天
连续签到:1 天
发表于 2015-9-30 17:19:16 | 显示全部楼层
Traceback (most recent call last):
  File "shareMyWifi.py", line 6, in <module>
    import wx
ImportError: No module named wx

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表