RT,刚到学校几天,闲来无事研究了一下校园网登录系统,发现登录系统出奇的简单,只是在URL里携带了用户名和密码(没错明文的),然后GET。。。。因此写了如下简单的Python脚本,可以作为参考,这里隐去了地址,具体详细可根据自己情况进行改进,这里仅作为参考!
功能很简单,检测到网络正常,就退出,检查到网络断开,就执行登录。启动参数-u和-p分别为用户名和密码。
我是将它用pyinstaller打包,然后在计划任务中运行,就可以了。
import requests
import urllib
import argparse
import time
ct: int = 0
error: bool = False
def NetworkLogin(username, password):
global ct, error
t = time.time()
unixtime: str = str(round(t * 1000))
url ='http://<你学校的登陆地址>/drcom/login?callback=dr' + unixtime + '&DDDDD=' + username + '&upass=' + password + '&0MKKey=123456&R1=0&R3=1&R6=0¶=00&v6ip=&_=' + unixtime
if not error:
if ct != 0:
print("发生第" + str(ct) + "次中断!")
print("========================")
print("正在链接中...")
try:
response = requests.get(url).status_code
except:
print("发生未知错误,将继续尝试。")
error = True
else:
print("成功发送登录命令!")
ct = ct + 1
error = False
if not error:
print("========================")
def NetworkCheck():
try:
status = urllib.request.urlopen("https://www.baidu.com").code
return False
except Exception as err:
return True
def loop_monitor():
while True:
if NetworkCheck():
NetworkLogin(args.username, args.password)
time.sleep(1)
parser = argparse.ArgumentParser(description='使用说明')
parser.add_argument('--username', '-u', help='用户名,必要参数', required=True)
parser.add_argument('--password', '-p', help='密码,必要参数', required=True)
args = parser.parse_args()
print("程序已启动,正在监控网络状态!")
loop_monitor()
下方为内部使用的,已经打包好的exe文件。
我直接好家什