在学校每次使用登录校园网,都要使用网页登录
最新在学习Python,闲着无聊写一个校园网登录的程序
在PATH里添加路径,运行窗口或命令提示符输入login
登录,logout
注销
运行窗口:
命令提示符——登录:
命令提示符——注销:
网络登录成功:
网络注销成功:
Network.py
import urllib.request
import urllib.parse
import socket
import xml.dom.minidom
dom = xml.dom.minidom.parse('E:\CampusNetwork\config.xml') # 打开xml文件
value = dom.getElementsByTagName('value') # 获取指定标签的序列
def getUser():
return value[0].firstChild.data # 通过索引获取值
def getPass():
return value[1].firstChild.data
def getUrl():
return value[2].firstChild.data
def getIP(): # 获取内网IP
myname = socket.getfqdn(socket.gethostname()) # 获取计算机名
ip = socket.gethostbyname(myname) # 获取IP
return ip
def login():
postData = urllib.parse.urlencode({ # 要提交的参数
'action': 'login',
'username': getUser(),
'password': getPass(),
'ac_id': '3',
'user_ip': getIP(),
'nas_ip': '',
'user_mac': '',
'save_me': '0',
'ajax': '1'
}).encode('utf-8')
reg = urllib.request.Request(getUrl(), postData) # 创建req对象
data = urllib.request.urlopen(reg).read().decode() # 登录
return data
def logout():
postData = urllib.parse.urlencode({
'action': 'logout',
'username': getUser(),
'password': getPass(),
'ajax': '1'
}).encode('utf-8')
reg = urllib.request.Request(getUrl(), postData)
data = urllib.request.urlopen(reg).read().decode()
return data
login.py
from Network import *
print(login())
logout.py
from Network import *
print(logout())
login.bat
@echo off
python E:\CampusNetwork\login.py
pause
logout.bat
@echo off
python E:\CampusNetwork\logout.py
pause
xml配置文件
<config>
<value>这里填账号value>
<value>这里填密码value>
<value>http://221.14.250.102:802/include/auth_action.phpvalue>
config>
注意:Network.py文件里的config.xml、login.bat和logout.bat里面引用的文件要填写绝对路径,否则会出错,找不到文件