# -*- 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()
【參考資料】