为了实现 断网了,自动连接网络

原理:每隔一段时间ping一下百度,判断网络状态,没有联网的话,就模仿浏览器发一条Post给服务器

import urllib
import hashlib
import subprocess
import os
import time

def getPass(password):
pass1 = hashlib.md5()
pass1.update(password)
pass2 = pass1.hexdigest()
return pass2[8:24]

def postLogin(url, user, password):
pass2 = getPass(password)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393'}
post_data = {'username': user, 'password': pass2, 'drop': '0', 'type': '1', 'n': '100'}
post_data = urllib.urlencode(post_data)
req = urllib.Request(url, post_data, headers)
response = urllib.urlopen(req)

     #就是Post的内容了,当然密码是MD5加密过后的,这个随便找找也没有问题的

    #接下来是 检测网络是否连接,我采用Ping百度的办法,毕竟这是百度最大的功能之一,网上参考一下别人的代码

def ping(user, password):
fnull = open(os.devnull, 'w')
return1 = subprocess.call('ping 61.135.169.125', shell=True, stdout=fnull, stderr=fnull)
if return1:
print_ts('Internet not connected!')
print_ts('Connecting now...')
postLogin('http://159.226.39.22/cgi-bin/do_login', user, password)
ping(user, password)
else:
print_ts('Internet connected!')
fnull.close()

def print_ts(message):
print("[%s] %s" % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), message))

# 定时运行,需要用到Python的time模块
def run(interval, user, password):
print_ts("-" * 50)
print_ts('Copyright (c) Huntley')
print_ts('Email:zhangzihao@ict.ac.cn')
print_ts('')
print_ts("Check the Internet every %s seconds." % interval)
print_ts("-" * 50)
while True:
try:
time_remaining = interval - time.time() % interval
time.sleep(time_remaining)
print_ts("Checking Internet connection...")
ping(user, password)
print_ts("Next check will start after %s seconds" % interval)
except Exception as e:
print(e)

if __name__ == '__main__':
# 设置联网检查时间间隔
# interval = 600
interval = 10
# 设置用户名
user = 'TYPE YOUR USERNAME HERE'
# 设置密码
password = 'TYPE YOUR PASSWORD HERE'
# 运行
run(interval, user, password)

Python 实现断网自动重连的更多相关文章

  1. Delphi使用ADO连接网络数据库,断网后重连问题

    原始文章: https://blog.csdn.net/blog_jihq/article/details/11737699# 使用TADOConnection对象连接网络数据库(以MySQL为例), ...

  2. Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包

    联网情况下在命令终端CMD中输入“pip install numpy”即可自动安装,pandas和matplotlib同理一样方法进行自动安装. 工作的电脑不能上外网,所以不能通过直接输入pip命令来 ...

  3. bat实现监测计算机网络连接,断网自动重启网络连接

    十月一体验了windows 10预览版之后,决定继续装回正式版,尝个鲜就好了,毕竟预览版还是不稳定,环境不是很方便. 决定装个最新正式版windows 8.1,结果问题来了,无线连接总是失败,显示网络 ...

  4. bat实现监测计算机无线连接,断网自动重启无线

    @echo off :Begin ping www.baidu.com if errorlevel 1 goto Reboot if errorlevel 0 goto Continue :Conti ...

  5. Python爬虫实战三之实现山东大学无线网络掉线自动重连

    综述 最近山大软件园校区QLSC_STU无线网掉线掉的厉害,连上之后平均十分钟左右掉线一次,很是让人心烦,还能不能愉快地上自习了?能忍吗?反正我是不能忍了,嗯,自己动手,丰衣足食!写个程序解决掉它! ...

  6. Delphi:ADOConnection连接SQLServer自动断网问题解决

    =============================== 解决方法一:异常时关闭连接,WinXP,win7 32位大部分情况都是起作用的,不过在有些windows操作系统下(如家庭版)不起作用, ...

  7. Win10电脑经常自动掉线、自动断网的解决方法

    近期一客户称自己使用电脑上网的时候,过一段时间莫名其妙的出现自动掉线.自动断网的情况,那么遇到这个问题该怎么办?下面装机之家分享一下Win10电脑经常自动掉线.自动断网的解决方法,以Win7系统为例. ...

  8. 断网环境,Python环境迁移

    Python刚装好断网了怎么办? wget不管用怎么办? 想把现有的Python环境转移到另外一台机器上怎么办? 这就用到了离线安装 1.创建目录用于存放下载的包,并进入该目录 mkdir lihai ...

  9. CSipIm断网重连崩溃原因分析

    断网重连之后的操作流程 拨打电话 ->调用SipService.makeCallOptions(),先重启一遍SipService保证PjSipService的各参数正常,尤其是create参数 ...

随机推荐

  1. 使用 IDEA 配合 Dockerfile 部署 SpringBoot 工程

    准备 SpringBoot 工程 新建 SpringBoot 项目,默认的端口是 8080 ,新建 Controller 和 Mapping @RestController public class ...

  2. 【详细、开箱即用】.NET企业微信回调配置(数据回调URL和指令回调URL验证)

    前言: 前段时间因为公司业务需求,需要将微信小程序与企业微信对接通,也就是把小程序绑定到对应的企业微信账号下,在该企业微信的用户可以将该小程序绑定到工作台中,然后可以在工作台中打开该小程序并授权.不过 ...

  3. Appium自动化(16) - 使用手机浏览器进行自动化测试

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 前面我都讲的都是针对 app ...

  4. 安全测试工具(1)- Burp Suite Pro的安装教程

    啥是Burp Suite 用于攻击web 应用程序的集成平台 程序员必备技能,不仅可以拿来做渗透测试.漏洞挖掘还能帮助程序员调试程序 Bug 它包含了许多Burp工具,这些不同的burp工具通过协同工 ...

  5. 制作Windows服务和安装程序(C#版)

    http://blog.sina.com.cn/s/blog_5f4ffa170100vt2b.html 1.创建服务项目: 打开VS 2005 编程环境,在C#中新建Windows服务程序 2.将安 ...

  6. SpringBoot系列——附件管理:整合业务表单实现上传、回显、下载

    前言 日常开发中,大多数项目都会涉及到附件上传.回显.下载等功能,本文记录封装通用附件管理模块,并与业务模块进行整合实现上传.回显.下载 我们之前已经对文件上传下载有过记录,传送门:基于"f ...

  7. 【Sass/SCSS 完整自学中文版教程02】SCSS 官方英文文档翻译整理

    Sass 调试 目录 Sass 调试 @error @warn @debug 如果对本文有任何问题,建议,或者在前端技术体系方面有任何问题,可以添加我的微信: drylint , 我会尽可能为你解答, ...

  8. ARP-NAT(MAC Address Translation)的原理

    本文部分图片来自: http://wiki.deliberant.com/faq/wireless-bridge-routing-arpnat/ https://wiki.openwrt.org/do ...

  9. CSS linear-gradient() 函数

    用于背景颜色渐变或画线条等场景 linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片. 创建一个线性渐变,需要指定两种颜色,还可以实现不同方向(指定为一个角度)的渐变效 ...

  10. input竖直的输入框,文字从上到下排列

    有的时候可能会有这样的需求,一个竖直的输入框,输入信息,文字也是从上到下排列: (但是在移动端或用轮播swiper时不起作用,可以用textarea代替input) <!DOCTYPE html ...