前言

​ 这个学年学校把宽带运营商从之前的联通大哥哥换成了如今的电信小弟弟,使用体验可谓一落千丈,最主要的原因是电信不再像联通提供拨号上网的账号和密码,改成了强制使用天翼校园的程序来进行认证上网,而且限制只能一台设备在线,这直接搞垮了宿舍内的一堆需要联网的设备,首先想到的是通过电脑先连接在共享给路由器,感谢这位兄弟提供的方法@task138,但是转念一想,既然学校内覆盖了校园网,那是否可以使用电脑搭建服务器从而达到在校园网范围内手机或者iPad都可以上网呢?这就是今天讨论的方法。

此方法仅限交流,请勿在保密场所使用
目前仅适用于Windows
源码: https://github.com/hamster1963/-SS-

实现效果

自动获取本机局域网地址并写入配置文件
自动获取本机局域网地址并写入配置文件
开启时显示各项配置参数,帮助使用者配置代理软件
开启服务器,出错时显示错误弹窗

原理与改进

开启服务器部分参考了GitHub上的项目,需要使用者手动填写config文件,使用起来学习成本有一点高,且如果没有成功运行也没有错误提示,所以使用python编写一个小脚本改进一下,以达到上述的功能。

使用方法

windows开启服务器

想开启SS代理服务器十分简单,如果不想更改默认的端口、密码、加密方式,可以直接双击使用服务器.exe,打开后根据弹窗配置自己的软件。

一切顺利后应该是这样的界面

程序编写

我们的目标其实很简单,就是获取当前IP地址并且写入到config文件中,并在启动服务器时有弹窗包含主要配置信息提醒用户。

获取ip地址

这是一个很通用的获取本机局域网ip地址的方法,代码如下:

#获取实时IP地址
def get_host_ip():"""查询本机ip地址:return: ip"""try:s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.connect(('8.8.8.8', 80))ip = s.getsockname()[0]finally:s.close()return ip

将ip地址写入配置文件

配置文件的类型是json,在python中我们可以很轻松地修改json文件内的值,只需要知道key和value的对应关系即可,代码如下:

#将IP地址写入json文件filename = 'config.json'
with open(filename, 'r') as f:data = json.load(f)data['server'] = get_host_ip() # <--- 添加实时ip地址.os.remove(filename)
with open(filename, 'w') as f:json.dump(data, f, indent=4)

由于上面的 get_host_ip()是直接返还ip地址的,所以在server的value部分我们直接使用get_host_ip()即可。

读取基础配置信息

在开屏弹窗中我们需要显示基本信息,所以我们先需要读取json文件内的我们需要的value值,代码如下:

#读取json 获取端口/密码/加密方式filename = 'config.json'
with open(filename, 'r') as f:data = json.load(f)a = data['password']b = data['server_port']c = data['method']

弹窗

弹窗使用的是tkinter库,语法也十分简单,代码如下:

def talk():tkinter.messagebox.showinfo("提示","你的ip地址是" + get_host_ip()+"\n你的端口号是"+str(b)+"\n你的密码是" + a + "\n加密方式是"+ c +"\n请勿关闭cmd窗口")

实现界面如图

主程序

基本的小组件都写好了我们最后就把积木拼成小车车

利用python写一个自动获取局域网ip地址并开启服务器绕过校园网设备限制的小工具相关推荐

  1. 利用python写一个自动给手机发邮件程序

    在用python做一些测试时候,不想一直盯着测试结果.当测试完成或者测试出现问题时候,希望能够快速提醒自己.这时候给自己发个邮件,手机邮箱就会收到消息.从而实现消息的快速获取. 这是小编准备的pyth ...

  2. python编写木马攻击_用Python写一个自动木马程序

    电脑作为大家日常办公的工具,最怕的一件事情之一就是被偷,当我们的电脑被盗的时候,不仅仅是电脑本身,更重要的是电脑存储的资料都会丢失.如何尽快的找回电脑需要我们想点办法,今天就教大家一个好的技巧,虽说不 ...

  3. python抽奖游戏_利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    原标题:利用Python写一个抽奖程序,解密游戏内抽奖的秘密 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客 ...

  4. 用python写一个自动群发微信脚本

    使用 Python 写一个自动群发微信脚本需要使用微信第三方 API 来实现.推荐使用 itchat 库,它提供了简单易用的 API,可以方便地编写微信自动化脚本. 首先,你需要安装 itchat 库 ...

  5. 利用python写一个简单的双色球彩票系统

    利用python写一个简单的双色球彩票系统 1.设置每次买的号码一样 写一个双色球彩票系统,系统可以随机产生一组数据,一组彩票数据有六位数,这六位数的的取值范围是0和1. 一张彩票是两块钱,用户可以选 ...

  6. C#如何获取局域网ip地址

    C#如何获取局域网ip地址 代码如下: public static string GetLocalIP(){try{ string HostName = Dns.GetHostName(); //得到 ...

  7. 利用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起. 很多人学习 ...

  8. 用python写一个自动注册脚本_python实现自动化上线脚本的示例

    程序说明: 本程序实现将开发程序服务器中的打包文件通过该脚本上传到正式生产环境(注:生产环境和开发环境不互通) 程序基本思路: 将开发环境中的程序包拷贝到本地堡垒机 将程序包进行解压 获得解压后的文件 ...

  9. 如何利用Python写一个病毒,去逗逗室友!毕竟他新买的电脑

    文仅供学习和测试,请勿用于非法用途. 前言 花了挺长时间去开发的,中间有很多包是抄的,比如DDL注入.关于opencv等等,主要其实做了一些拼接.打包.部署. 写这篇博客并不真的想去写病毒攻击别人,而 ...

最新文章

  1. React+Reflux博客实践
  2. Android Service使用方法--简单音乐播放实例
  3. 数字证书及在WCF中的应用
  4. 软件测试工具和报告学习-3月6日
  5. mysql 存过 if_mysql中 储存过程 if exists 该如何写呀
  6. Perl输出复杂数据结构:Data::Dumper,Data::Dump,Data::Printer
  7. C语言 链表 头插法
  8. 安装与配置-以前的某个程序安装已在安装计算机上创建挂起的文件操作......
  9. (第九周)团队项目14
  10. 前端学习(148):html和xhtml的区别
  11. PP视频怎么设置文件的缓存路径
  12. python对文件的_python 对文件操作
  13. Spring Boot 之事件(Event)
  14. Oracle 数据库导出(exp)导入(imp)说明
  15. 推荐6款好用、免费的远程控制软件【远程管理工具】
  16. iPhone 4 Cydia使用教程!精选Cydia源!cydia怎么添加源!Cydia源使用方法!越狱后使用cydia全攻略!...
  17. endnote X7使用方法
  18. 吹捧导师师娘“神论文”的作者,被处理了
  19. webservice和jms的区别
  20. 最美遇见最好的你,感谢!

热门文章

  1. 使用Student T'test方法做性能测试
  2. 数字电路实验怎么接线视频讲解_时间继电器原理,及在星三角启动中的接线原理图...
  3. (SRCNN)及pytorch实现_Learning a Deep Convolutional Network for Image Super-Resolution——超分辨率(二)
  4. PS/LR滤镜校正工具perfectly clear3破解版
  5. 卡尔曼滤波,最最容易理解的讲解.找遍网上就这篇看懂了.
  6. Linux 太难了?你需要知道这 5 点
  7. Unity3d使用高通Vuforia发布IOS工程不支持64位的一些解决办法
  8. 1007:DNA排序
  9. 重磅!华为更新职业认证架构刷新和重认证规则
  10. Unity3D FPS Game:第一人称射击游戏(一)