震惊! 再也不怕蹭网被发现了!
时间:2022-07-23
本文章向大家介绍震惊! 再也不怕蹭网被发现了!,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
今天下了个wifi共享精灵, 连上了别人的网, 从此告别无网生活 于是顺手访问了下 192.168.0.1 居然不用输管理员密码就进入后台了...
image.png
于是和朋友聊天, 想搞个实时监控, 看看如果对方连上网, 我就低调点, 当然都是搞的玩的
需要相关技术
- 腾达路由器...
- NodeJS
- axios --- 用于请求路由器接口
- wunderbar --- 命令行绘制图表(装x
- snoretoast --- 系统通知程序( 我看vue-cli用的就是这个,不然还不知道
总体原理
- 通过请求api获取路由器数据
- 通过判断联网设备,来判断是否有出了自己之外的人连上, 通过判断前后的长度差,来判断是否有新设备加入
代码
const axios = require('axios') // http请求库
const wunderbar = require('@gribnoysup/wunderbar') // 命令行图表库
const WindowsToaster = require('node-notifier').WindowsToaster // 弹框通知库
let notifier = new WindowsToaster({ // 配置SnoreToast
withFallback: false,
customPath: './SnoreToast.exe'
});
let my = '' // 自己设备的ip
let num = 0 // 当前联入设备总数
let allDown = '' // 总下载
let allUp = '' // 总上传
let downSpeed = [] // 下载速度数组
let deviceList = [] // 除去自己的设备
function getData() {
// 请求设备网络使用数据
axios.get('http://192.168.0.1/goform/getQos?random=0.2296175026847045')
.then(res => {
let result = res.data
my = result.localhost
downSpeed = []
upSpeed = []
deviceList = []
result.qosList.map(v => {
if (v.qosListHostname !== 'DESKTOP-QKBMCV7' && v.qosListHostname !== 'Unknown') {
deviceList.push(v.qosListHostname)
}
// 将数据遍历到数组中, 图表需要的数据格式 {value: 你的数据, label: 数据的标题, color: 数据的颜色} 后两项不是必须的
downSpeed.push({
value: v.qosListDownSpeed,
label: v.qosListHostname
})
})
})
.catch(err => {
console.log(error)
})
// 请求设备联网总数据
axios.get('http://192.168.0.1/goform/getStatus?0.3297709679659049')
.then(res => {
let result = res.data
allDown = result.statusDownSpeed
allUp = res.data.statusUpSpeed
num = res.data.statusOnlineNumber
})
.catch(err => {
console.log(err)
})
}
// 绘图方法
const printData = () => {
const { chart, legend, scale, __raw } = wunderbar(downSpeed, {
min: 0,
length: 42,
format: (n) => `${n}KB/s`
});
// 清空命令行
process.stdout.write('n');
process.stdout.write(' 33[0f');
process.stdout.write(' 33[2J');
// 绘制图表
console.log()
console.log('==========================================');
console.log(`当前时间:${new Date().toLocaleTimeString()}`)
console.log(`本机当前IP: ${my}t 当前联网设备:${num}t 总下载速度:${allDown}KB/st 总上传速度:${allUp}KB/st`);
console.log('==========================================');
console.log(chart);
console.log();
console.log(legend);
console.log();
};
// 定时刷新
let otherDeviceLength = 0 // 设备计数
setInterval(async () => {
await getData()
// 判断是否有新设备加入
if (deviceList.length > otherDeviceLength) {
otherDeviceLength = deviceList.length
// 桌面通知
notifier.notify({
title: '有人连进来了',
message: '低调点!低调点!低调点!',
icon: './xu.jpg'
},
function (error, response) {
console.log(response)
});
} else {
otherDeviceLength = deviceList.length
}
await printData()
}, 5000)
效果
image.png
讲真的,我喜欢这种质感的命令行
代码地址
https://github.com/klren0312/RubbingNetNotice
参考资料
- 命令行图表: wunderbar
- 数字格式化库: http://numeraljs.com/#format
- 系统弹框工具: snoretoast
- NodeJS操控系统弹框库: node-notifier
- HTTP请求工具: axios
- Druid-目前最好的连接池
- 【算法】哈希表的诞生
- java中获得文件大小代码
- 【Java】泛型学习笔记
- 读写文件具体操作
- 【算法】赫夫曼树(Huffman)的构建和应用(编码、译码)
- ERROR 1396 (HY000): Operation CREATE USER faile...
- hive安装后测试
- 【算法】论平衡二叉树(AVL)的正确种植方法
- 【JavaScript】 JS面向对象的模式与实践
- log4j:ERROR Failed to load driver
- 前端MVC Vue2学习总结(七)——ES6与Module模块化、Vue-cli脚手架搭建、开发、发布项目与综合示例
- 前端MVC Vue2学习总结(六)——axios与跨域HTTP请求、Lodash工具库
- spring之config.xml完整版示例
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Fast-SCNN的解释以及使用Tensorflow 2.0的实现
- 基于Spring Boot快速实现发送邮件功能
- 史上最全的vim快捷键文档/手册/大全/帮助/指南
- RPC详解
- 轻松学Pytorch – 行人检测Mask-RCNN模型训练与使用
- Linux的文本处理工具浅谈-awk sed grep
- 这样Review代码牛逼啦!
- FinDOM-XSS:一款针对DOM型XSS漏洞的快速扫描工具
- 使用Pycharm和跳板机 连接内网服务器
- CVE-2020-1313漏洞分析与利用PoC
- Linux用户登录日志查询 # 1 utmp、wtmp、btmp文件
- 浏览器同域名请求的最大并发数限制
- HTTP Strict Transport Security实战详解
- 深夜学算法之SkipList:让链表飞
- 自研安全工具之网页全链接爬取