校园网上网认证

  最近把实验室的服务器安装上ESXI虚拟化平台,其中虚拟化平台中Linux虚拟机我一般都采用最小化安装,不使用带有GUI图形界面,校园网中没有采用客户端认证,而是使用锐捷的web认证,正好这几天学习python,所以使用python3写了一下认证脚本,将脚本仍到服务器上,配置计划任务,这样就能很轻松的上外网了。

  github:https://github.com/GuoYingLong/eportal-login

  使用方法(CentOS7):

  • 安装python3并创建python虚拟环境
# 安装依赖包
$ yum -y install wget gcc epel-release
# 安装 Python3.6
$ yum -y install python36 python36-devel
# 配置并载入 Python3 虚拟环境
$ cd /opt
$ python3.6 -m venv python3  # python3 为虚拟环境名称, 可自定义
$ source /opt/python3/bin/activate  # 退出虚拟环境可以使用 deactivate 命令
#看到下面提示表示虚拟环境创建成功
(pyhon3) [root@localhost python3]
  • 安装依赖
#在python虚拟环境中执行
pip install requests 
pip install sys
  • 使用vim编辑器保存下面配置,注意修改认证服务器的IP地址vim /opt/ruijie-rz.py
# -*- coding: utf-8 -*-
import requests, time, json, sys

# 认证服务器访问的IP地址
IP = 'http://锐捷web认证服务器

params = (
     ('method', 'login'),
)

# 登录
def login(username, password):
    
    # 设置表格数据
    data = {
        'userId': username,
        'password': password,
        'service': '',
        'queryString': 'wlanuserip=d3f94b58e944bac825d41e10028c6ed5&wlanacname=f0a84436888c6c46f8767008165e7980&ssid=&nasip=21aea9e1c34fe0bfecaa6d4544af21c6&snmpagentip=&mac=92077bdf24107b48b3372f446e0cafe9&t=wireless-v2&url=709db9dc9ce334aa024775e22fb74a232056518a7aae8aa6&apmac=&nasid=f0a84436888c6c46f8767008165e7980&vid=d468ea41e905d091&port=f1492fa065990d34&nasportid=5b9da5b08a53a540a2f7a2b77b704e7de708bfac0f0f136217662997cd7aedea',
        'operatorPwd': '',
        'operatorUserId': '',
        'validcode': '',
        'passwordEncrypt': 'false'
    }

    while True:
        try:
            response = requests.post(IP + '/eportal/InterFace.do', params=params, data=data)
            if response.status_code == 200:  #判断返回http状态码200为成功
                response.encoding = 'UTF-8'  #修改编码格式为UTF-8
                result = json.loads(response.text)
                if 'success' in result['result']:
                    # print(response.text)
                    print("校园网登入成功!",result['message'])
                    break
                elif '密码不匹配,请输入正确的密码!' in result['message']:
                    print("密码错误!请重新尝试")
                    break
                elif '用户不存在' in result['message']:
                    print("用户不存在!请重新尝试")
                    break
                else:
                    print("登录失败", result['message'])
                    time.sleep(3)
            else:
                print("提交请求失败!")
                time.sleep(3)
        except Exception as e:
            print("正在尝试重连......", e)
            time.sleep(3)

if __name__ == '__main__':
   #封装成文件后,外部传递参数
    username = sys.argv[1]
    password = sys.argv[2]
    login(username,password)
  • 运行脚本
cd /opt
python ./ruijie-rz.py 用户名 密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值