【南工认证 IOS】南工大校园网自动认证源码 IOS快捷指令 Pythonista3

 为统一管理发布,请点击下方链接跳转,感谢理解

📫 请点击【南工认证 Windows/Android/IOS】下载及使用指南

import threading
from re import search
from time import sleep
from requests import get, post


class AutoLogin():

    """ 自行配置以下属性 """
    username = "20192114" # 填入自己的学号
    password = "66666666" # 填入自己的密码
    broadban = "中国移动"  # 宽带运营商:中国移动/中国电信


    def __init__(self):

        try: self.getLoginData()
        except: print("请正确配置校园网账号信息!")


    def getLoginData(self):

        if   self.broadban == '中国移动': self.bandabbr = '@cmcc'
        elif self.broadban == '中国电信': self.bandabbr = '@telecom'


    def requestLogin(self):
 
        ############ 发送get请求, 获取post所需数据 ##########
        url_bases = "https://u.njtech.edu.cn/cas/login"
        url_query = "https://u.njtech.edu.cn/oauth2/authorize"\
                    "?client_id=Oe7wtp9CAMW0FVygUasZ&response_type=code&state=njtech"\
                    "&s=f682b396da8eb53db80bb072f5745232"
        useragent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) "\
                    "AppleWebKit/605.1.15 (KHTML, like Gecko) "\
                    "Version/15.2 Safari/605.1.15"
        get_head  = {'User-Agent':            useragent}
        get_urls  = url_bases + "?service=" + url_query
        get_info  = get(url=get_urls, headers=get_head).text
        lt        = search('lt\" value=\"(.*?)\"',        get_info).groups()[0]
        exe       = search('execution\" value=\"(.*?)\"', get_info).groups()[0]
        js        = search('jsessionid=(.*?)\">',         get_info).groups()[0]
        cookies   = F"JSESSIONID={js}; insert_cookie=97324480"

        ############# 发送post请求, 完成认证 ################
        post_urls = F"{url_bases};jsessionid={js}?service={url_query}"
        post_head = {
            "Host": "u.njtech.edu.cn",
            "Content-Type": "application/x-www-form-urlencoded",
            "Origin": "https://u.njtech.edu.cn",
            "Accept-Encoding": "gzip, deflate, br",
            "Cookie": cookies,
            "Connection": "keep-alive",
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "User-Agent": useragent,
            "Referer": url_query,
            "Content-Length": "207",
            "Accept-Language": "zh-CN,zh-Hans;q=0.9",
        }
        post_data = {
            "username":    self.username,
            "password":    self.password,
            "channelshow": self.broadban,
            "channel":     self.bandabbr,
            "lt":                     lt,
            "execution":             exe,
            "_eventId":         "submit",
            "login":               "登录"}
        post(url=post_urls, headers=post_head, data=post_data)


    def toConnect(self):
        threads = []
        threads.append(threading.Thread(target=self.requestLogin))
        threads.append(threading.Thread(target=self.connectionProcessBar))
        for t in threads: t.start()
        for t in threads: t.join()
 
 
    def connectionProcessBar(self):
        for i in range(11):
            print('\r\t正在连接:{0}  {1}%'.format('▉▉'*i, (i*10)), end='');sleep(0.05)
 
 
if __name__ == '__main__':
 
    login = AutoLogin()
    login.toConnect()
 

      转载请注明出处,请勿用于非法用途

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值