【大學(xué)城校園網(wǎng)】自動登陸描姚、斷線重連

# -*- coding:utf-8 -*-

import urllib
import urllib2
import socket
import types
import time
import os
import subprocess


class Login:
    # 初始化
    def __init__(self):
        self.username = '3331*S******'
        self.password = '******'
        self.ip_pre = '219.223'
        # 檢測間隔時間从祝,單位為秒
        self.every = 5*60  # second

    # 模擬登錄
    def login(self):
        print self.getCurrentTime(), u"正在嘗試認證UTSZ無線網(wǎng)絡(luò)........"
        data = {
            'action':'login',
            "username": self.username,
            "password": self.password,
            "ac_id": 1,
            "user_ip:": "",
            "nas_ip": "",
            "user_mac": "",
            "save_me": 1,
            "ajax": 1,
        }
        # 消息頭
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) '
                          'AppleWebKit/537.36 (KHTML, like Gecko) '
                          'Chrome/45.0.2454.101 Safari/537.36',
            'Host': '10.0.10.66',
            'Origin': 'http://10.0.10.66',
            'Referer': 'http://10.0.10.66/srun_portal_pc.php?ac_id=1&url='
        }

        post_data = urllib.urlencode(data)
        login_url = "http://10.0.10.66/include/auth_action.php"
        request = urllib2.Request(login_url, post_data, headers)
        response = urllib2.urlopen(request)
        result = response.read()  # .decode('gbk')
        self.getLoginResult(result)

    # 打印登錄結(jié)果
    def getLoginResult(self, result):
        if "login_ok" in result:
            print self.getCurrentTime(), 'login_ok'
        else:
            print self.getCurrentTime(), result

    # 獲取本機無線IP
    def getIP(self):
        local_iP = socket.gethostbyname(socket.gethostname())
        if self.ip_pre in str(local_iP):
            return str(local_iP)
        ip_lists = socket.gethostbyname_ex(socket.gethostname())

        for ip_list in ip_lists:
            if isinstance(ip_list, list):
                for i in ip_list:
                    if self.ip_pre in str(i):
                        return str(i)
            elif type(ip_list) is types.StringType:
                if self.ip_pre in ip_list:
                    return ip_list

    # 判斷當前是否可以聯(lián)網(wǎng)
    def canConnect(self):
        fnull = open(os.devnull, 'w')
        result = subprocess.call('ping www.baidu.com', shell=True, stdout=fnull, stderr=fnull)
        fnull.close()
        if result:
            return False
        else:
            return True

    # 獲取當前時間
    def getCurrentTime(self):
        return time.strftime('[%Y-%m-%d %H:%M:%S]', time.localtime(time.time()))

    # 主函數(shù)
    def main(self):
        print self.getCurrentTime(), u"您好蚤吹,歡迎使用模擬登陸系統(tǒng)"
        while True:
            nowIP = self.getIP()
            if not nowIP:
                print self.getCurrentTime(), u"請檢查是否正常連接UTSZ無線網(wǎng)絡(luò)"
            else:
                print self.getCurrentTime(), u"成功連接了UTSZ網(wǎng)絡(luò),本機IP為", nowIP
                self.login()
                while True:
                    if not self.canConnect():
                        if not self.getIP():
                            print self.getCurrentTime(), u"當前已經(jīng)掉線,請確保連接上了UTSZ網(wǎng)絡(luò)"
                        else:
                            print self.getCurrentTime(), u"當前已經(jīng)掉線片效,正在嘗試重新連接"
                            self.login()
                    else:
                        print self.getCurrentTime(), u"當前網(wǎng)絡(luò)連接正常"
                    time.sleep(self.every)
            time.sleep(self.every)

login = Login()
login.main()

【參考資料】

  1. 博主 http://cuiqingcai.com/1052.html
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末焦除,一起剝皮案震驚了整個濱河市激况,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膘魄,老刑警劉巖乌逐,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異创葡,居然都是意外死亡浙踢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門蹈丸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人呐芥,你說我怎么就攤上這事逻杖。” “怎么了思瘟?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵荸百,是天一觀的道長。 經(jīng)常有香客問我滨攻,道長够话,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任光绕,我火速辦了婚禮女嘲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诞帐。我一直安慰自己欣尼,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布停蕉。 她就那樣靜靜地躺著愕鼓,像睡著了一般钙态。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上菇晃,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天册倒,我揣著相機與錄音,去河邊找鬼磺送。 笑死驻子,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的册着。 我是一名探鬼主播拴孤,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼甲捏!你這毒婦竟也來了演熟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤司顿,失蹤者是張志新(化名)和其女友劉穎芒粹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體大溜,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡化漆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钦奋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片座云。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖付材,靈堂內(nèi)的尸體忽然破棺而出朦拖,到底是詐尸還是另有隱情,我是刑警寧澤厌衔,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布璧帝,位于F島的核電站,受9級特大地震影響富寿,放射性物質(zhì)發(fā)生泄漏睬隶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一页徐、第九天 我趴在偏房一處隱蔽的房頂上張望苏潜。 院中可真熱鬧,春花似錦变勇、人聲如沸窖贤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赃梧。三九已至滤蝠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間授嘀,已是汗流浹背物咳。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹄皱,地道東北人览闰。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像巷折,于是被迫代替她去往敵國和親压鉴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前些日子從@張鑫旭微博處得一份推薦(Front-end-tutorial)锻拘,號稱最全的資源教程-前端涉及的所有知識...
    谷子多閱讀 4,196評論 0 44
  • 孟小滿是我同班同學(xué)兼前桌油吭,認識孟小滿這年,我們高二署拟,因為文理分班婉宰,早在高一的時候她的名字應(yīng)該全年級都知道,尤其是男...
    弓長每閱讀 771評論 7 5
  • 四月推穷,春暖花開心包,微風(fēng)習(xí)習(xí)。銀大的校園鳥語花香馒铃,書聲瑯瑯蟹腾,正值讀書的好時候。我校第二屆成語大賽如約而至区宇⊥拗常“譜成語之絕...
    fb3bcde41efa閱讀 919評論 0 1
  • 藥命(五)護士把同意書拿給醫(yī)生以后,醫(yī)生去給洪海做了骨髓穿刺萧锉,然后出來進了醫(yī)生辦公室珊随,醫(yī)生說:-患者我已經(jīng)給做完穿...
    Mr海鮮君的故事閱讀 1,053評論 0 1