记一次无聊折腾闪讯经历

背景

我们学校的闪讯没有心跳,基本上可以浪。 但是因为我只有个极路由,弄起来比较麻烦,所以也懒得折腾路由器插件(编译怪麻烦的)。 正好有个pcDuino,打算拿来做服务器,顺便做一下闪讯的自动拨号。

过程

要解决闪讯拨号目前有两种办法:

  1. 一种奇葩的算法算用户名交给路由器PPPOE拨号,缺点是需要电脑时间准确。
  2. 用AES算法算密码通过网页POST给闪讯服务器实现自动直连。

这里采用的是第二种算法,即密码算法,优点是比较方便(都用到http库了方便个鬼),只要知道路由器的内网IP即可。

首先编写程序:https://github.com/pa001024/netdialer

这个项目使用了Go,实现了以上两种拨号方法(然而只用到一个)


这里主要使用了里面附带的几个小工具

  1. 拨号工具 go get github.com/pa001024/netdialer/netdialer
  2. 判断是否连上网的小工具 go get github.com/pa001024/netdialer/getip
  3. 获取极路由内网IP的小工具 go get github.com/pa001024/netdialer/router/hiwifi

然后到/etc/cron.hourly添加一个bash脚本(请自行替换账号密码)sudo vim netkeeper

#!/bin/bash

ip=`getip`  
if [[ $ip == "" ]]; then  
    hiwifi -p ai941024 | netdialer -u 18158051382@HYXY.XY -p 115266 -ip stdin
fi  

然后sudo chmod +x netkeeper

这样就每天自动拨号了,简直懒死233

扩展

pcDuino说实话就是电脑(我拿来当lnmp服务器了,跑Minecraft也没问题,就是内存小点),只不过是arm架构(P.S.手机也是arm,手机root后装个busybox和终端app也可以直接跑编译成linux/arm的golang命令行程序)

所以这个方法完全适用于电脑(然并卵,除非你电脑一直开着),只是相应的设置有所区别。

对于Windows系统请使用以下步骤设置:

  1. 新建一个文件命名为netkp.bat内容就是下面的代码
  2. 打开计划任务添加相应任务blablabla.....(TMD不会百度啊
  3. 然后按照你设定的日程就会自动拨号了
Windows版代码
@echo off
getip  
IF ERRORLEVEL 2 goto yes  
goto eof  
:yes
hiwifi -p 路由admin的密码 | netdialer -u 11111111111@HYXY.XY -p 111111 -ip stdin  
:eof

pa001024

继续阅读此作者的更多文章