延安大学校园网剩余流量查询接口

延安大学校园网剩余流量查询接口

背景:更方便查询,而不需要每次都要登陆校园网后台管理

方案:在10.200.84.3登陆上校园网之后,其实每次都在前端会给我们返回已经使用的流量和相关数据。所以我们只需要登陆后,找到这个 api 即可。

URl:http://10.200.84.3/drcom/chkstatus?callback=dr1002&v

返回数据:

dr1002({
    "result":1,
    "time":1215,
    "flow":14051428,
    "fsele":1,
    "fee":0,
    "m46":0,
    "v46ip":"10",
    "myv6ip":"",
    "oltime":42995,
    "olflow":24816,
    "lip":"10",
    "stime":"2023-11-12 13:30:46",
    "etime":"2023-11-12 13:39:28",
    "uid":"113009",
    "v6af":0,
    "v6df":0,
    "v46m":0,
    "v4ip":"10.",
    "v6ip":"::",
    "AC":"",
    "ss5":"10.",
    "ss6":"10",
    "vid":0,
    "ss1":"",
    "ss4":"",
    "cvid":0,
    "pvid":0,
    "hotel":0,
    "aolno":6179,
    "eport":-1,
    "eclass":1,
    "zxopt":1,
    "NID":"",
    "olno":0,
    "udate":"",
    "olmac":"",
    "ollm":10,
    "olm1":"00000010",
    "olm2":"0000",
    "olm3":0,
    "olmm":1,
    "olm5":0,
    "gid":16,
    "actM":1,
    "actt":,
    "actdf":,
    "actuf":,
    "act6df":0,
    "act6uf":0,
    "allfm":1,
    "d1":0,
    "u1":0,
    "d2":0,
    "u2":0,
    "o1":0,
    "nd1":,
    "nu1":,
    "nd2":0,
    "nu2":0,
    "no1":0
})

需要注意的是返回值并不是标准的json格式。

前面需要删除:dr1002(,后面需要删除)

使用函数find 截取到按照前后括号的内容即可变成标准json格式。

flow是已经使用的流量

olflow是剩余的流量

单位需要除以1024 / 1024换算成GB并%.2f保留两位小数。

代码:

import requests
import json

url = "http://10.200.84.3/drcom/chkstatus?callback=dr1002&v"

response = requests.get(url)

if response.status_code == 200:
    # 获取响应文本
    data = response.text

    # 找到括号内的内容,即 JSON 数据部分
    start_index = data.find('(') + 1  # 开始括号后的位置
    end_index = data.rfind(')')  # 结束括号的位置

    # 提取括号内的部分
    json_data = data[start_index:end_index]

    try:
        # 解析 JSON 数据
        parsed_data = json.loads(json_data)
        # print(parsed_data['flow'] / 1024 / 1024)
        # 保留两位小数
        print("已用流量:%.2f GB" % (parsed_data['flow'] / 1024 / 1024))
        # 同理提取 olflow 剩余流量
        print("剩余流量:%.2f GB" % (parsed_data['olflow'] / 1024 / 1024))
    except json.decoder.JSONDecodeError as e:
        print("JSON Decode Error:", e)
        print("Response Content:", json_data)
else:
    print("Failed to retrieve data. Status code:", response.status_code)

编写一个 shell 脚本更便于调用和运行。

#!/bin/bash

Python3 /目标位置/main.py ; exit;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值